Golang TCP错误wsarecv

Golang TCP错误wsarecv,tcp,go,Tcp,Go,我正在编写一个监听tcp连接的应用程序(请参阅)。当tcp连接断开连接时,我收到一个错误读取tcp ip\u服务器:端口1->ip\u客户端:端口2:wsarecv:一个现有连接被远程主机强制关闭。 我预期会出现错误EOF和超时(对于conn.setReadDailate()),并试图用此代码捕获错误: if err != nil { log.Println("getting error from listener") // I thought, listener ca

我正在编写一个监听tcp连接的应用程序(请参阅)。当tcp连接断开连接时,我收到一个错误
读取tcp ip\u服务器:端口1->ip\u客户端:端口2:wsarecv:一个现有连接被远程主机强制关闭。
我预期会出现错误
EOF
和超时(对于
conn.setReadDailate()
),并试图用此代码捕获错误:

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 
    }
}

有人知道这个错误吗?您知道如何捕获此错误以及何时发生此错误吗?提前谢谢

此错误的常见原因是您通过已被对等方关闭的连接发送数据。换句话说,应用程序协议错误。

不是Go而是相同类型的错误:@ulg'bekRo'zimboyev,两种简单的查找方法:a)查看Go
net
package source或b)使用
log.Printf(“%T%+v”、err、err)
来格式化/打印
err
中包含的完整类型和完整信息,当发生时,这将告诉您需要用什么代码替换
Printf
。您找到此消息的类型了吗?我得到
*net.oper读取tcp ip\u服务器:port1->ip\u客户端:port2:wsarecv:远程主机强制关闭了现有连接。
,因此,消息的类型应该是
*net.OpError
@Ulug'bekRo'zimboyev最终它是EconReset。我不知道它在围棋中的作用,但你可以查一下。