短缺期间缓冲的 UDP 数据包



我遇到的情况是Linux客户端正在使用UDP套接字。客户端正在发送消息,如果在 10 秒内没有响应,客户端将在 10 秒间隔内重试。

这种情况是当连接断开时,许多试验是从客户端发送的,同时服务器端没有收到任何内容。连接启动后,我发现所有以前的消息都在服务器上的同一时刻收到,这意味着它被缓冲了,并且由于在同一时刻在服务器端收到重复的消息,它会导致很多问题。

客户端上的 TCPDUMP

21:01:14.691903 IP 172.123.13211 > 172.34.13211: length 88  "1st at second 14"  
21:01:24.692791 IP 172.123.13211 > 172.34.13211: length 88  "2nd at second 24"  
21:01:34.694930 IP 172.123.13211 > 172.34.13211: length 88  "3rd at second 34"  
21:01:44.696020 IP 172.123.13211 > 172.34.13211: length 88  "4th  ate second 44"   

连接启动后的服务器 TCPDUMP :

12:02:01.509518 IP 172.123.13211 > 13211: length 88 "Received 1st at second 1"       
12:02:01.517841 IP 172.123.13211 > 13211: length 88 "Received 2nd at second 1"    
12:02:01.543759 IP 172.123.13211 > 13211  length 88 "Received 3rd at second 1"    
12:02:01.550741 IP 13211 > 172.123.13211: length 36   
12:02:01.567948 IP 172.123.13211 > .13211: length 88

我需要了解在使用UDP套接字并且连接关闭的情况下。 如何避免在短缺期间缓冲数据包

客户端代码在C++ 谢谢

你可能正在寻找这个:

如何在 C 语言中刷新 UDP 套接字的输入缓冲区?

您在问题中使用的语言也是错误的。请更加干净和准确,并使用相关术语

最新更新