client_tcp.go 726 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package internal
  2. import (
  3. "net"
  4. "one.com/nnet"
  5. )
  6. type TcpClient struct {
  7. *Hub
  8. addr string
  9. }
  10. func NewTcpClient(cf *nnet.HubConfig, cb nnet.ISessionCallback, p nnet.IProtocol, addr string) *TcpClient {
  11. return &TcpClient{
  12. Hub: newHub(cf, cb, p),
  13. addr: addr,
  14. }
  15. }
  16. func (self *TcpClient) Start() error {
  17. tcpAddr, err := net.ResolveTCPAddr("tcp", self.addr)
  18. if err != nil {
  19. return err
  20. }
  21. conn, err := net.DialTCP("tcp", nil, tcpAddr)
  22. if err != nil {
  23. return err
  24. }
  25. self.wg.Add(1)
  26. go func() {
  27. ses := newSession(TcpConn{conn}, self)
  28. ses.Do()
  29. self.wg.Done()
  30. }()
  31. return nil
  32. }
  33. func (self *TcpClient) DoJob(int) {
  34. }
  35. func (self *TcpClient) Stop() error {
  36. close(self.chQuit)
  37. self.wg.Wait()
  38. return nil
  39. }