客户端断开后,是否可以从客户端套接字读取?

时间:2015-06-17 15:11:45

标签: c sockets ubuntu server

我试图为C编写一个能够处理写得不好的客户端程序的服务器程序。客户端向服务器发送一堆命令,然后关闭套接字。在服务器执行每个命令之后,它应该向客户端发送0或1,具体取决于命令是否失败。

如果我不尝试在每个命令后的一个字节发送客户端,一切都很好,我可以在客户端关闭套接字后继续读取服务器端的命令。但是,如果我尝试写入1个字节,在从客户端读取1个命令后,我将无法再读取命令(由对等方重置连接)。

有办法解决这个问题吗?如同,能够写入和读取所有命令吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您需要知道客户端在发送另一个命令之前是否等待您对每个命令的回答。 在典型的客户端 - 服务器连接中,客户端启动通信。由于您的客户端发送了大量命令,因此有两种可能:

  • 在操作结束时,您的套接字返回将是OK或NOK。
  • 对于客户发送的每条消息,您的退货将是OK或NOK。

此外,我建议您发送任何跟踪信息,以便我们可以评估哪种解决方案更适合您的情况。