TCP 数据包有时会被组合(并延迟?



我每 500 毫秒从服务器向客户端发送一次数据包,反之亦然,以指示连接仍处于活动状态。但是,有时这些数据包会延迟,并且多个数据包会组合在一起。问题是,当它可能只是延迟时,这会导致"连接超时"。

在任何

现代互联网连接上,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

数据包的组合不是问题,但数据包应该直接发送,而不是延迟。

KEEPALIVE选项添加到我的套接字似乎已经解决了这个问题。

多亏了@cdarke。

最新更新