我有一个TCP / IP客户端和服务器相互通信。
我的客户端以1秒的间隔recv
来自服务器的数据。 sleep(1000)
。
我的服务器没有sleep
条款。
如果我recv
使用像“hi”这样的简单字符串,它就可以了。
但如果我不在我的服务器中引入睡眠,我的客户似乎处于挂机状态或在发布时立即处理大量数据。
我的服务器是否也应该sleep
?
或者处理recv
ed数据可能会出现问题?
答案 0 :(得分:1)
如果您的服务器在没有睡眠的情况下写入套接字,那么它将非常快速地填充双方的TCP缓冲区,您的客户端几乎会立即将大量数据卡在其本地缓冲区中以进行读取。如果您希望服务器因客户端上的睡眠而延迟,那么您可以将其作为事务来执行,而不是服务器写入字符串然后读取字节。然后,客户端将读取该字符串并写入一个字节以表示它已收到该字符串。这将使服务器与客户端保持同步。