|
@@ -1 +1,48 @@
|
|
|
package internal
|
|
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
|
|
|
|
|
+}
|