Bladeren bron

add tcp client

joe 4 jaren geleden
bovenliggende
commit
edbc81cc16
1 gewijzigde bestanden met toevoegingen van 47 en 0 verwijderingen
  1. 47 0
      internal/client_tcp.go

+ 47 - 0
internal/client_tcp.go

@@ -1 +1,48 @@
 package internal
+
+import (
+	"net"
+	"one.com/nnet"
+)
+
+type TcpClient struct {
+	*Hub
+	addr string
+}
+
+func NewTcpClient(cf *nnet.HubConfig, cb nnet.ISessionCallback, p nnet.IProtocol, addr string) *TcpClient {
+	return &TcpClient{
+		Hub: newHub(cf, cb, p),
+		addr: addr,
+	}
+}
+
+func (self *TcpClient) Start() error {
+	tcpAddr, err := net.ResolveTCPAddr("tcp", self.addr)
+	if err != nil {
+		return err
+	}
+	conn, err := net.DialTCP("tcp", nil, tcpAddr)
+	if err != nil {
+		return err
+	}
+
+	self.wg.Add(1)
+	go func() {
+		ses := newSession(TcpConn{conn}, self)
+		ses.Do()
+		self.wg.Done()
+	}()
+
+	return nil
+}
+
+func (self *TcpClient) DoJob(int) {
+
+}
+
+func (self *TcpClient) Stop() error {
+	close(self.chQuit)
+	self.wg.Wait()
+	return nil
+}