tcp server 用于给andriod 客户端定时发送消息
liuxiaolong
2019-06-01 d1bc8d8bd989531c7b8d37603cfe188b600bb385
conn close when err
1个文件已修改
32 ■■■■■ 已修改文件
server.go 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server.go
@@ -1,6 +1,7 @@
package main
import (
    "errors"
    "flag"
    "fmt"
    "net"
@@ -56,9 +57,14 @@
    ech := make(chan error)
    go func(conn net.Conn, ech chan error) {
        buf := make([]byte, 10)
        _, err := conn.Read(buf)
        if err != nil {
            ech <- err
        for {
            _, err := conn.Read(buf)
            log.Log.Errorln("Read completed!")
            if err != nil {
                ech <- err
                log.Log.Errorln("Read Error!conn.Close")
                break
            }
        }
    }(conn, ech)
    tick := time.NewTicker(10 * time.Second)
@@ -87,17 +93,15 @@
    log.Log.Infoln("jsonstring len: ", len(jsonstring), "\000 data: ", len("\000"))
    _, err := conn.Write(jsonstring)
    if err !=nil{
        fmt.Println("conn: ",conn)
        log.Log.Errorln(err)
        conn.Close()
        index :=0
        for ;index < len(connArr); {
            if connArr[index] == conn{
                connArr = append(connArr[:index],connArr[index+1:]...)
                continue
            }
            index++
        }
        fmt.Println("connArr: ",connArr)
        //index :=0
        //for ;index < len(connArr); {
        //    if connArr[index] == conn{
        //        connArr = append(connArr[:index],connArr[index+1:]...)
        //        continue
        //    }
        //    index++
        //}
    }
}