xugu_sock.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package xugu
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. )
  7. func xgSockOpenConn(ctx context.Context, pConn *xuguConn) error {
  8. fmt.Println(" ---xgSockOpenConn(ctx context.Context, pConn *xuguConn)")
  9. //发送
  10. //fmt.Printf("login database = '%s' user = '%s' password = '%s' version='201' ", pConn.Database, pConn.User, pConn.Password)
  11. // message := "login database = 'SYSTEM' user = 'SYSDBA' password = 'SYSDBA' version='201' "
  12. dsnMessage := generateLoginString(pConn.dsnConfig)
  13. _, err := pConn.conn.Write([]byte(dsnMessage))
  14. if err != nil {
  15. return errors.New("conn 发送数据库连接失败:")
  16. }
  17. fmt.Println("数据已发送:", dsnMessage)
  18. buffer := make([]byte, 1)
  19. n, err := pConn.conn.Read(buffer)
  20. if err != nil {
  21. return errors.New("conn 接收数据库连接相应失败:")
  22. }
  23. fmt.Println("读取数据库服务返回:", string(buffer[:n]))
  24. //SockSendCommand0(pConn, "set schema SYSTEM")
  25. return nil
  26. }
  27. func xuguSockRecvMsg(pConn *xuguConn) (interface{}, error) {
  28. pConn.conn.Read(pConn.readBuff.buf)
  29. fmt.Println("pConn.readBuff.buf ::", pConn.readBuff.buf, string(pConn.readBuff.buf))
  30. rs, err := parseMsg(&pConn.readBuff, pConn)
  31. if err != nil {
  32. fmt.Println("xuguPrepare parseMsg(&pConn.readBuff, pConn)")
  33. return nil, err
  34. }
  35. pConn.readBuff.reset()
  36. return rs, nil
  37. }