当前位置: 技术问答>linux和unix
linux网络编程 Connection reset by peer错误
来源: 互联网 发布时间:2017-02-09
本文导语: 服务器向客户端发送了数据,客户端没有接收就关闭了,服务器read就会发生Connection reset by peer错误。 我试验了一下,确是如此。 同学们遇到过这个问题吗? | Connection reset by peer 本质是...
服务器向客户端发送了数据,客户端没有接收就关闭了,服务器read就会发生Connection reset by peer错误。
我试验了一下,确是如此。
同学们遇到过这个问题吗?
我试验了一下,确是如此。
同学们遇到过这个问题吗?
|
Connection reset by peer 本质是收到一个标记了reset位的数据包。
这个错误的原因有几种:
1. connect到一个不存在的端口。
2. 对方故意发送RST包(一些网络破坏程序会这么干)。
3. 对方故障(中途掉线,程序重启)等原因,导致socket失效,或者不再是原来那个socket。(你遇到的应该就是这种)
这个错误的原因有几种:
1. connect到一个不存在的端口。
2. 对方故意发送RST包(一些网络破坏程序会这么干)。
3. 对方故障(中途掉线,程序重启)等原因,导致socket失效,或者不再是原来那个socket。(你遇到的应该就是这种)
|
客户端调用close()时,服务器应该会读到一个EOF,read()返回0
|
TCP协议中有RST标志位, 不管原因是什么, 正确的判断返回值-1, errno != EINTR && errno != EAGAIN就可以认定对端出错, 立即cloes即可.