请问UDP协议的同步问题,高手指点啊? 我做了一个简单的点对点的文件传输程序,用的是datagrampacket,发现如果发送端和接收端收和发的速率相差太大,就会丢失一些数据包,比如接收端多打印几次字符串,就会丢失好多个包。有什么简单的方法实现接受和发送时的datagrampacket级别上的同步呢?以我的水平实在是想不出好方法了?我的程序仅仅作了开始和结束的同步。像qq一类的软件是怎么实现的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文件需要socket那样的Http传输文字聊天信息使用UDP可以或者你在UDP里面做标记校验(相当于Http但是无序,麻烦) 你这个课题比较麻烦。我的想法是你每个UDP里面,自己定义一个序号,然后每隔N个包,发送一个校验包,里面包含了自最近一次发送校验包之后,发送过的包的序列号。这个校验包一定要等到接受端响应,才会继续处理。如果一段时间后还是没有响应,就持续发送。接受端接受到校验包之后,检查最近接受到的包的序列号,假如有缺失,便在上面提到的响应的那个UDP包中,重新要求发送端上传上述包(即使这个包还在路上)。发送端得到重新发送的请求后,就应该把那丢失的几个包,放到新一次N个序列中的最优先位置(序列号保持原有的)比如 > 发送端到接受端 < 接受端到发送端[x] 第N个包{...} 校验包=================> [1]> [2]> [3]> {1,2,3} SENT< {1,2,3} RCVD> [4]> [5]> [6]> {4,5,6} SENT< {4,6} RCVD {5} LOST> [5]> [7]> [8]> {5,7,8} SENT这个校验包也丢了,N秒后> {5,7,8} SENT< {5,7} RCVD {8} LOST> [8]> [9]> [10]...... netbeans生成后怎么没见到jar文件? 快来猜猜这两句的打印结果 关于《java编程思想 第4版》的问题 关于 Java3D 中 为 .obj 文件 添加导入的贴图 如何使程序一直运行,(不用gui,不用死循环,也不用sleep()) JGraph遇到困难题 JAVA应用程序开发的困惑 求输入只允许汉字的正则表达式? 如何创建一个模态的对话框? anubis生日快乐~~~~~~~~~另祝大家新年快乐 Java初学者容易混淆的几个问题 急,SWT,在窗口中添加了一个Tree,然后点左边Tree中的Item,右边如何调用不同的composite界面?
文字聊天信息使用UDP可以
或者你在UDP里面做标记校验(相当于Http但是无序,麻烦)
> 发送端到接受端
< 接受端到发送端
[x] 第N个包
{...} 校验包
=================> [1]
> [2]
> [3]
> {1,2,3} SENT
< {1,2,3} RCVD> [4]
> [5]
> [6]
> {4,5,6} SENT
< {4,6} RCVD {5} LOST> [5]
> [7]
> [8]
> {5,7,8} SENT
这个校验包也丢了,N秒后
> {5,7,8} SENT
< {5,7} RCVD {8} LOST> [8]
> [9]
> [10]
......