我正在编写一个监听的应用程序tcp connection
(参见此示例).当tcp connection
断开连接时我收到错误read tcp ip_server.:port1->ip_client:port2: wsarecv: An existing connection was forcibly closed by the remote host.
我预期错误EOF
和超时(for conn.SetReadDeadline()
)并试图捕获此代码的错误:
if err != nil {
log.Println("getting error from listener")
// I thought, listener can continue work another cases
if neterr, ok := err.(net.Error); ok && neterr.Timeout() || err == io.EOF {
log.Println("Closing connection...")
break // connection will be closed
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这个错误?你知道如何捕获此错误以及何时发生此错误?提前致谢 !
此错误的常见原因是您通过已由对等方关闭的连接发送数据.换句话说,应用程序协议错误.