如何用UDP实现可靠传输

vivinono 2010-07-16 04:45:11
rt。
本人还是菜鸟,希望讲解能详细一点。
...全文
1661 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
99263 2010-08-12
  • 打赏
  • 举报
回复
UDT能P2P吗,好象不行吧。
这个开发包就是自己实现的,楼主可参考一下:http://www.anychat.cn/faq/
hslinux 2010-07-29
  • 打赏
  • 举报
回复
关注~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gunsand 2010-07-29
  • 打赏
  • 举报
回复
就是简单模拟TCP 重传,数据排序等操作,
数据会存储在本地缓冲QUEUE里, 你可以参考RUDP, UDT 这些协议都已经很完善了呀。
嘿嘿 没必要自己写,不用想你写的肯定没UDT好。
SmallBirdLove 2010-07-25
  • 打赏
  • 举报
回复
其实很简单的,你发送消息的时候,在前面加上一个消息序列判断,发送方记录这个序列号,然后发送给对方,如果对方收到,马上发送一个验证消息,接受法在规定的时间(比如2s)内如果没有收到验证消息,就重发给消息,接收方如果接受到了该消息,记录下该消息的序列号,如果接受到消息,就判断这条消息的序列号是否已经存在,如果存在,给对方发送验证消息,但不对这个数据做其他处理,
这就是防止TCP的超时重传机制
周药师 2010-07-23
  • 打赏
  • 举报
回复
自定义成 双工 的工作模式+协议
blingpro 2010-07-23
  • 打赏
  • 举报
回复
udt协议有解决办法,提供了跟socket基本一致的接口,参考一下吧
gl
gaotianpeng 2010-07-23
  • 打赏
  • 举报
回复
使用UDT
jasonM2008 2010-07-23
  • 打赏
  • 举报
回复
使用UDT
dhc302 2010-07-23
  • 打赏
  • 举报
回复
需要自己添加通信协议,如握手、重传等。以前做过类似的是,短时间开发出来的效率比较低。
homesos 2010-07-22
  • 打赏
  • 举报
回复
UDT是个比较好的选择
源码及示例下载:http://sourceforge.net/projects/udt/
homesos 2010-07-22
  • 打赏
  • 举报
回复
实现的方式很多,就是性能区别很大
要实现UDP确认重发,需要缓存发送数据包、执行额外的计算来验证正确性,会增加很大的开销。
不过数据量大的时候一般都是用这种方式替换TCP
skyab2007 2010-07-22
  • 打赏
  • 举报
回复
udp 发出的包本是不可靠的。

你自己定义一些ACK

在接收方去判断可靠不可靠
ZMHMinghao 2010-07-22
  • 打赏
  • 举报
回复
UDP能实现可靠传输吗?记得大学时老师说,UDP是不可靠连接,这和他的工作原理相关,假如要实现可靠传输,那就和TCP没太大区别了,那到还不如直接采用TCP呢。
zhuchunyao 2010-07-21
  • 打赏
  • 举报
回复
包中增加编号,发送侧将发送过的包序号保存,接收侧将接收到的包的序号返回,发送方按照返回的序号将保存的序号清空,同时使用定时器,一段时间内没有返回的包认为丢失,进行重发。
用户 昵称 2010-07-18
  • 打赏
  • 举报
回复
可靠就是tcp
CppFile 2010-07-18
  • 打赏
  • 举报
回复
这个实际上就是你自己实现一套tcp的机制了,挺复杂的
lijianli9 2010-07-17
  • 打赏
  • 举报
回复
自定义通讯协议,如果没有收到对方的ACK,重发包。
mnbqwe1 2010-07-17
  • 打赏
  • 举报
回复
要自定义协议的
Icedmilk 2010-07-17
  • 打赏
  • 举报
回复
给你的包编号,哈哈
star19678051 2010-07-17
  • 打赏
  • 举报
回复
如果想要用UDP实现可靠传输就不得不自己在应用层实现定义一些可靠的协议,比如说检测包的顺序、重复包等等的问题~~所以想实现可靠传输还是推荐用TCP
加载更多回复(9)

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧