|
|
@@ -47,11 +47,11 @@ func (ap *authPackage)toBytes()[]byte{
|
|
|
}
|
|
|
|
|
|
type TcpClient struct {
|
|
|
- conn net.Conn
|
|
|
- pchan chan *authPackage
|
|
|
- done chan bool
|
|
|
- exited bool
|
|
|
- verified bool
|
|
|
+ conn net.Conn // 连接
|
|
|
+ pchan chan *authPackage // 包chan
|
|
|
+ done chan bool // 是否done
|
|
|
+ exited bool // 退出
|
|
|
+ verified bool // 验证是否
|
|
|
}
|
|
|
|
|
|
// 创建client
|
|
|
@@ -72,6 +72,7 @@ func(c *TcpClient)Start() {
|
|
|
if p := recover(); p != nil {
|
|
|
fmt.Println("ecover", p)
|
|
|
}
|
|
|
+ c.conn.Close()
|
|
|
c.restart()
|
|
|
}()
|
|
|
|
|
|
@@ -114,6 +115,7 @@ func(c *TcpClient)Start() {
|
|
|
return
|
|
|
}
|
|
|
case <-c.done:
|
|
|
+ glog.Infoln("发送数据done退出")
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
@@ -162,6 +164,9 @@ func(c *TcpClient)restart(){
|
|
|
go func(){
|
|
|
time.Sleep(3 * time.Second)
|
|
|
c.verified = false
|
|
|
+ c.done = make(chan bool)
|
|
|
+ c.pchan = make(chan *authPackage, 100)
|
|
|
+ c.exited = false
|
|
|
c.Start()
|
|
|
}()
|
|
|
}
|