2020-11-24

UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize

如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !

一、UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize

       利用UdpClient收发文件,走Udp协议,发送端只管发送数据包,接收端负责接收数据,测试中发现,按每块1298字节发送数据包时,接收端在接收共8块时出现了部分数据包的丢失,分析可能是数据突然集中到达超出Socket接收缓冲区大小,造成数据覆盖丢失,因为默认Socket缓冲区大小为8192字节,每块数据1298字节再加上我在实验程序中自定义的数据包头信息,每块数据大小在1472字节,8块共计11776字节,远超出了8192,会造成数据丢失。接收端在乱序接收文件过程中,对突然集中到达的数据包处理不及时,造成缓冲区大小不够存储这些数据包,发生数据包的丢失,因而【如果要传送大文件,或在使用高带宽或高滞后时间连接(如卫星宽带提供程序),请考虑增加缓冲区的大小】。针对UdpClient,我们需要用到Socket 的ReceiveBufferSize 属性,添加如下代码:

 

UdpClient uc = new UdpClient(7376);//创建一个UdpClient实例,监听绑定了端口7376的接口

 

uc.Client.ReceiveBufferSize = 1024 * 1024;//这里大小(以字节为单位)根据需要修改,默认值是8192









原文转载:http://www.shaoqun.com/a/493005.html

sonar:https://www.ikjzd.com/w/215

hts:https://www.ikjzd.com/w/525

递四方:https://www.ikjzd.com/w/1066


如果需要查看更多文章,请微信搜索公众号csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群,我邀请你进群!!!一、UDP协议C#UdpClient乱序接收数据包丢失的问题SocketReceiveBufferSize利用UdpClient收发文件,走Udp协议,发送端只管发送数据包,接收端负责接收数据,测试中发现,按每块1298字节发送数据包时,接收端在接收共8块时出现了
粉丝通:粉丝通
刘军:刘军
圆明园石狮子口中石球少一个 回应:正在调查此事:圆明园石狮子口中石球少一个 回应:正在调查此事
爱淘城:爱淘城
深圳青青世界五一有什么活动?2020青青世界五一活动介绍?:深圳青青世界五一有什么活动?2020青青世界五一活动介绍?

No comments:

Post a Comment