【发布时间】:2015-06-17 15:11:45
【问题描述】:
我正在尝试为 C 编写一个服务器程序,该程序将能够处理编写得不好的客户端程序。客户端向服务器发送一堆命令,然后关闭套接字。在服务器执行每个命令后,它应该根据命令是否失败向客户端发送 0 或 1。
如果我不尝试在每个命令后向客户端发送一个字节,那么一切都很好,我可以在客户端关闭套接字后继续在服务器端读取命令。但是,如果我确实尝试写入该 1 个字节,则在从客户端读取 1 个命令后,我将无法再读取命令(对等方重置连接)。
有没有办法解决这个问题?比如,能够读写所有的命令?
【问题讨论】:
-
我不明白你在做什么。客户端收到服务器的响应,然后断开连接。客户端断开连接后,服务器应该如何从客户端获取更多命令?
-
我不清楚。客户端向服务器发送 x 个命令,所用时间少于服务器处理 1 个命令所用的时间(命令一次处理 1 个)。如果我不尝试写入客户端,即使在客户端关闭套接字后,我仍然可以读取 x-1 剩余命令。如果我确实写信给客户端,我将无法再读取任何命令。