UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1075字,纯文字阅读大概需要2分钟。
内容图文
![UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize](/upload/InfoBanner/zyjiaocheng/621/010cfd60ebb7452380e6e60189197a5d.jpg)
如果需要查看更多文章,请微信搜索公众号 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
内容总结
以上是互联网集市为您收集整理的UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize全部内容,希望文章能够帮你解决UDP 协议 C# UdpClient乱序接收数据包丢失的问题 Socket ReceiveBufferSize所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。