服务器 - 客户端模型问题

时间:2012-04-11 13:08:22

标签: c sockets networking network-programming winsock2

我有一个TCP / IP客户端和服务器相互通信。

我的客户端以1秒的间隔recv来自服务器的数据。 sleep(1000)。 我的服务器没有sleep条款。

如果我recv使用像“hi”这样的简单字符串,它就可以了。

但如果我不在我的服务器中引入睡眠,我的客户似乎处于挂机状态或在发布时立即处理大量数据。

我的服务器是否也应该sleep

或者处理recv ed数据可能会出现问题?

1 个答案:

答案 0 :(得分:1)

如果您的服务器在没有睡眠的情况下写入套接字,那么它将非常快速地填充双方的TCP缓冲区,您的客户端几乎会立即将大量数据卡在其本地缓冲区中以进行读取。如果您希望服务器因客户端上的睡眠而延迟,那么您可以将其作为事务来执行,而不是服务器写入字符串然后读取字节。然后,客户端将读取该字符串并写入一个字节以表示它已收到该字符串。这将使服务器与客户端保持同步。