我从服务器发送数据包到客户端,反之亦然,每500 is发送一次,以表明连接仍然有效。然而,有时这些包被延迟,多个包被组合在一起。问题是,这将导致“连接超时”,而这可能只是一个延迟。
在任何现代互联网连接上,10秒的数据包发送延迟对我来说都是相当长的时间。对如何解决这个问题有什么想法吗?
在服务器和客户端消息都被发送和接收,如下面的示例所示,最后接收的数据包由多个分组组合而成。这种情况同时发生在服务器和客户机上。
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
SENT ALIVE PACKET
RECEIVED ALIVE PACKET RECEIVED ALIVE PACKET RECEIVED ALIVE
PACKET RECEIVED ALIVE PACKET RECEIVED ALIVE PACKET RECEIVED ALIVE
PACKET RECEIVED ALIVE PACKET RECEIVED ALIVE PACKET RECEIVED ALIVE
PACKET RECEIVED ALIVE PACKET ****RECEIVED TIMEOUT PACKET****
Connection Timeout.编辑
在运行相同代码的另一台PC上,这种情况从未发生过。
编辑2
数据包的组合并不是一个问题,但是数据包应该直接发送,而不是延迟。
发布于 2018-01-30 17:18:42
将KEEPALIVE选项添加到我的套接字似乎解决了这个问题。
感谢@cdarke。
https://stackoverflow.com/questions/48526637
复制相似问题