udp问题请教

MINIXMAN 2004-03-01 01:52:46
客户端我用UDP协议监听5555端口,接受来自其他客户端的消息,并显示出来。
同时我也用端口5555发消息给其他客户的5555端口,我想请教一下,在发消息的时候如何实现
重传机制。
...全文
67 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Asiafly 2004-03-29
  • 打赏
  • 举报
回复
你重用端口又监听又连接的,本来就有问题。如果硬要做的话,照你的思路,恐怕也是阻塞式的,监听-发送-等待确认-再重传-直至成功……这效率实在是太低了吧?!
你要是完全仿照tcp的那种重传机制,那么效率将是不可忍受的。
就是采用计时器也是不可能的,因为udp不会得到对方ack的。
fengge8ylf 2004-03-25
  • 打赏
  • 举报
回复
对于用UDP传输视频数据大家有什么建议
COM_MOC 2004-03-23
  • 打赏
  • 举报
回复
可能直接使用socket API里的select()函数就可以解决你的总是。在这里可以指定要等待的时间,看是否在规定时间内有数据可读,没有则超时重传。conghonglei(继续努力) 的建议很好,以后每次加大超时等待的时间,避免网络阻塞。
gaoxianfeng 2004-03-20
  • 打赏
  • 举报
回复
做个计时器 发送后定时监测 对端收到包得响应 没有就重传 等上你认为合适的次数后 从队列里删掉
hell190109 2004-03-19
  • 打赏
  • 举报
回复
关注
uuussseeennn 2004-03-19
  • 打赏
  • 举报
回复
既然你想要有重传的功能,为什么不用TCP?如果是为了节省网络资源,我觉得一点都没!因为UDP是无连接的,所以它不会自动发确认信息,那就得在你的应用层去实现这个功能,这同样也消耗了主机资源,而且肯定没有内核的执行效率高;在发确认的时候,还得为这个确认消息打上一个包,这个包却主要的内容是一些头,真正有用的信息却很少,这就更浪费带宽了.
fwp0794 2004-03-19
  • 打赏
  • 举报
回复
关注。。。
conghonglei 2004-03-18
  • 打赏
  • 举报
回复
udp 是面向无连接的,所以只好自己维持连接。
模仿tcp, 编号发送,接受后发送ack, 如果超时未收到ack ,重发。

不过注意,重发一次后,注意延长等待时间,以免造成堵塞

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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