修正示例代码中当客户端已关闭TCP连接时,服务端未及时关闭连接的问题
This commit is contained in:
@@ -261,20 +261,12 @@ Go语言中通过net包中的`DialTCP`函数来建立一个TCP连接,并返回
|
|||||||
read_len, err := conn.Read(request)
|
read_len, err := conn.Read(request)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != io.EOF { // ignore EOF since client might send nothing for the moment
|
fmt.Println(err)
|
||||||
fmt.Println(err)
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
neterr, ok := err.(net.Error)
|
|
||||||
if ok && neterr.Timeout() {
|
|
||||||
fmt.Println(neterr)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if read_len == 0 {
|
if read_len == 0 {
|
||||||
continue
|
break // connection already closed by client
|
||||||
} else if string(request) == "timestamp" {
|
} else if string(request) == "timestamp" {
|
||||||
daytime := strconv.FormatInt(time.Now().Unix(), 10)
|
daytime := strconv.FormatInt(time.Now().Unix(), 10)
|
||||||
conn.Write([]byte(daytime))
|
conn.Write([]byte(daytime))
|
||||||
|
|||||||
Reference in New Issue
Block a user