[高分!]UDP通信,数据接收顺序错乱。

willcheng 2005-03-12 12:05:17
程序A发UDP三个包(发包间隔比较短)
U01,
U02,
U03
程序B接收包竟然变成
U02
U03
U01
怎样解决顺序问题?
...全文
407 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
3996906 2005-03-13
  • 打赏
  • 举报
回复
udp就是这个样子

自己把数据打标了,自己收到了再装起来
jadeluo 2005-03-13
  • 打赏
  • 举报
回复
UDP协议并不保证接收者收到的数据包的顺序是与发送时一致的, 这是UDP协议与TCP协议的不同点之一。

同意楼上所说的,给包加上序列号(也就是说包的原始数据要根据你自己制定的通讯协议再次进行打包)。
cbchen 2005-03-13
  • 打赏
  • 举报
回复
楼上正解,给包加上序列号,收到后再重组
constantine 2005-03-12
  • 打赏
  • 举报
回复
没有见过这种,粘包倒是见过
你怎么写代码的
willcheng 2005-03-12
  • 打赏
  • 举报
回复
在线等。
setdefault 2005-03-12
  • 打赏
  • 举报
回复
如果有控件能够实现最好,要不然:
自己在数据包中加上一个头,包组包含标识,包总数和当前包号。接收时拼装。
比如发送3段数据,是一个有顺序的包组,则3段数据拥有同样的ID(比如用时间),包总数为3,第一个包的包好为1,第二个为二,类推。
willcheng 2005-03-12
  • 打赏
  • 举报
回复
粘包是什么意思?
willcheng 2005-03-12
  • 打赏
  • 举报
回复
用这个控件TNMUDP

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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