大虾们,救命呀!UDP传输中数据不能全部接收到?

lindongcheng 2003-10-09 01:35:46
我做了一个广播通讯系统,类似与QQ的样子,老板要求必须使用UDP通讯方式,可当我做好后,在本机上运行完全正常,而将服务器端安装到“某些”机子上时,却发生传输中数据不能全部到达客户端的问题(例如:发出“abcde”,接收的却是“abc”)。最先我以为是接收端数据缓冲区不够,当我将其放大后,依然无任何效果,再想到如果是因为缓冲大小问题的话,应该在所有的机子上有相同的运行结果,所以这种判断可以排除。我想应该与机子环境有关,但更具体的我就想不出来了。
希望各位大侠大虾们多多赐教,小弟感激不尽!
...全文
114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
binbin2000 2003-11-26
  • 打赏
  • 举报
回复
我也刚做完一个类似qq的东西,发送消息的时候用udp,传输文件的时候用tcp,你的老板没有错。
binbin2000 2003-11-26
  • 打赏
  • 举报
回复
呵呵,不是丢包的问题。
要循环读取缓冲里面的数据就行了。要不你把取udp包的代码写出来让大家看看。
chaojinn 2003-11-26
  • 打赏
  • 举报
回复
udp本来就是这样的啊,要不丢的话,自己写应答啊
blankman 2003-11-25
  • 打赏
  • 举报
回复
"abcd"是在一个包中还是在多个包中?
如果是在一个包中的话就不应该是udp本身的问题,因为要么全部受到
要么一个也收不到,不会出现只收一个包中一部分的现象,
如果是在多个包中的话,一旦网络繁忙,
底层处理不过来的时候可能会出现丢包现象

愿意交流 blankman@tom.com
stamp80 2003-10-09
  • 打赏
  • 举报
回复
首先,udp可靠性不高。另外,udp对传输的内容大小好像本身有限制。
outer2000 2003-10-09
  • 打赏
  • 举报
回复
UDP是不可靠协议;
所以,一般在接收的时候进行校验;
phantomhu 2003-10-09
  • 打赏
  • 举报
回复
丢失是正常的,呢可以给发送的信息加个head 在head里面封装信息的长度 在客户端校验 如果有错在重发
LoveRose 2003-10-09
  • 打赏
  • 举报
回复
udp的传输本身就是不安全的,容易丢包的。所以有可能不是你程序的问题
cxyPioneer 2003-10-09
  • 打赏
  • 举报
回复
学习

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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