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