首页 新闻 会员 周边 捐助

c# UDP分包不停的发送大文件 接收重组

0
悬赏园豆:10 [已解决问题] 解决于 2013-01-21 16:29

前景

  最近在用c#尝试做一个 远程监控的软件 是屏幕截图+UDP发送 UDP 速度快 可能会丢失数据 接收到的顺序和发送的顺序可能不一样   因为是监控允许丢失少量的数据 既然是监控发送的速度一定不能太慢 所以我用了 UDP 没用TCP   UDP每次发送的长度有限 哪怕是一张图片也要分包发送  

问题

  我连续不停的分包发送图片,在接收到的数据包顺序是混乱的 区分不出那些数据包是属于同一张图片的???? 只有区分出来了我才能把它们重组出来(有人给我说给每个数据包加标志 如果标志一样就是同一张图片的包 如果这样标志肯定是唯一的 但是这些很多很多图片发送 不知道怎么去加这样的标志)。

备注

  本人一菜鸟 想法也许有错 有错还希望大牛指正

不语的主页 不语 | 初学一级 | 园豆:126
提问于:2013-01-16 10:03
< >
分享
最佳答案
0

不要说UDP,TCP也一样,也涉及到分包重组的问题。你可以在每个数据包可以这样定义:

struct package

{

文件标识

偏移量

数据段

};

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2013-01-16 10:11

文件标示应该是唯一的吧   那么多的文件发送 怎么保证标示是唯一的呢

不语 | 园豆:126 (初学一级) | 2013-01-16 10:40

@浣花溪: 比如可以生成一个GUID,直接用GUID,或者使用GUID的HASH值。总之就是用最小的代价来得到一个随机不重复的值。

Launcher | 园豆:45050 (高人七级) | 2013-01-16 10:49
其他回答(1)
0

你好,我最近也做了一个类似的东西,UDP视频传输,涉及到UDP的分包重组问题,不知道你是具体怎么解决的?麻烦联系我1228055396@qq.com

monkey1223 | 园豆:202 (菜鸟二级) | 2013-03-20 23:16

你好,你这个做了没有,可不可以分享一下代码

支持(0) 反对(0) 小魔女123 | 园豆:200 (初学一级) | 2016-03-28 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册