【发布时间】:2011-02-06 17:18:29
【问题描述】:
这是我想要做的: 当有新消息可用时,服务器会向连接的客户端发送消息。另一方面,客户端在连接时会尝试使用 send() 向服务器发送消息,然后使用 recv() 接收消息,然后客户端调用 close() 关闭连接。
有时,在客户端完成后,服务器尝试从客户端接收消息会导致 104 - “对等连接重置”错误。发生这种情况时,Wireshark 显示客户端发送的最后两个段是:
1. 确认收到服务器发送的消息的 ACK
2. RST/ACK
客户端不发送任何 FIN。
为什么会发生这种情况以及如何在客户端“正确”关闭套接字?
【问题讨论】: