在TCP / IP套接字中,服务器如何知道客户端正忙而没有接收数据?
我的解决方案:
使用connect(),
我不确定。
感谢
答案 0 :(得分:2)
在TCP / IP套接字中,服务器如何知道客户端正忙 没有收到数据
如果TCP不断推送对等方未确认的数据,最终发送窗口将填满。此时,TCP将缓冲数据以“稍后发送”。最终将达到缓冲区大小, send(2)
将挂起(通常不会这样做)。
如果send(2)
开始挂起,则表示对等TCP未确认数据。
显然,即使对等TCP接受数据,也不意味着对等应用程序实际使用它。您可以在ACK
之上实现自己的TCP
机制,并不像听起来那样不合理。这将涉及让客户偶尔发送“发送更多信息”。
答案 1 :(得分:1)
客户端几乎总是会收到您的数据,我的意思是操作系统会接受数据包并将它们排队等待读取。如果该队列填满,则发件人将阻止(TCP,无论如何)。您实际上无法知道客户端代码的活动。几乎你唯一的选择是使用超时。