社区
C#
帖子详情
C# Socket UDP 丢包问题怎么解决
daiyong_88
2010-12-22 11:26:21
需求:由于我是在嵌入式终端操作Socket,所以Socket不能一直链接,只有发送消息时才链接,等过了超时,就算失败,关闭Socket 。
现在我有一个登录,和一个传输图片,用的都是UPD,登录只发送一次,不会丢包,但是发送图片丢包很严重(很多次发送)。
我感觉是用for循环发送的太快了,丢包了,也不知道是不是的。如果一丢包,服务器就不会及时发消息我,不能及时关闭Socket。
现在想怎么避免丢包,由于是刚学Socket 对UDP怎么熟悉。
...全文
426
6
打赏
收藏
C# Socket UDP 丢包问题怎么解决
需求:由于我是在嵌入式终端操作Socket,所以Socket不能一直链接,只有发送消息时才链接,等过了超时,就算失败,关闭Socket 。 现在我有一个登录,和一个传输图片,用的都是UPD,登录只发送一次,不会丢包,但是发送图片丢包很严重(很多次发送)。 我感觉是用for循环发送的太快了,丢包了,也不知道是不是的。如果一丢包,服务器就不会及时发消息我,不能及时关闭Socket。 现在想怎么避免丢包,由于是刚学Socket 对UDP怎么熟悉。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liaochaoxiao
2011-01-10
打赏
举报
回复
顶,如果是发送即时图片如何做呢,不可能是在重发,只能是直接把包丢弃重新接受新的包,有没有代码可以借鉴下?
daiyong_88
2010-12-22
打赏
举报
回复
[Quote=引用 3 楼 hyttplay 的回复:]
验证包。
方式1:一发一验证。
每发送一次,等待对方回应。超时重发
方式2:全部发完再验证。
验证方式同上
[/Quote]
能不能贴个代码?怎么知道超时了?
纵横宇宙
2010-12-22
打赏
举报
回复
验证包。
方式1:一发一验证。
每发送一次,等待对方回应。超时重发
方式2:全部发完再验证。
验证方式同上
大黄鸭在发光
2010-12-22
打赏
举报
回复
网络丢包,是再正常不过的了。
既然用UDP,就要接受丢包的现实,否则请用TCP。
如果必须使用UDP,而且丢包又是不能接受的,只好自己实现确认和重传,说白了,就是自己实现TCP
烈火蜓蜻
2010-12-22
打赏
举报
回复
丢包无法避免,只能是重发
纵横宇宙
2010-12-22
打赏
举报
回复
你可以自定义一个超时时间
给每个数据包定义一个唯一的ID标识符
每发完一个包就将ID添加到消息队列去
对方收到包,要回应,并且附带报道ID标识符
定时检测消息队列的信息,看有没有超时的包,再重发
C#
socket
通信TCP和
UDP
方式
socket
通信TCP和
UDP
方式接受发送消息,类似聊天软件
C#
Socket
TCP和
UDP
报文及端口测试工具的开发(提供源码)万能超好测试工具
C#
Socket
TCP和
UDP
报文及端口测试工具的开发(提供源码)万能超好测试工具
C#
UDP
通讯组件,支持拆包组包,
丢包
重发
自己仿照某商业组件开发的通讯模块,简单的调用便可实现传文件,即时通讯等内容.
C#
SOCKET
大文件传输.zip
C#
实现的
SOCKET
大文件传输,支持高并发,断点续传等,是学习
SOCKET
通信的经典案例,走过路过不要错过!!!!!!
C#
UDP
传送实例
c#
实现的安全可靠的
UDP
分包传送。包含例子,和一个封装好的
UDP
类
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章