使用udp发送数据,会不会收到错误的数据

李正己 2003-10-09 03:29:58
使用udp发送数据,会不会收到错误的数据,会不会收到部分数据
如果有,错误的几率有多大,如何避免
...全文
726 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kweio 2003-10-11
  • 打赏
  • 举报
回复
dev c++里的哪个include 文件里有。。。。。。
dev c++里的哪个include 文件里有。。。。。。
textbackground()
window()
clrscr()
这些函数不是在conio.h里的吗?可我在dev c++里试了:
#include <conio.h>
main()
{
int i;
textbackground(0);
clrscr();
for(i=1;i<8;i++)
{
window(10+i*5,5+i,30+i*5,15+i);
textbackground(i);
clrscr();

}
getch();
}
[Linker error] undefined reference to `以上那些函数名'
李正己 2003-10-10
  • 打赏
  • 举报
回复
imsolo 大侠 UDP默认应该是有校验的吧
还有UDP的校验方式可以校验出所有的错误吗?
你的这些信息是在什么地方得到的,请引见一下,多谢
imsolo 2003-10-10
  • 打赏
  • 举报
回复
UDP的校验和包括UDP首部和数据,方法是计算16位的二进制和,首先将校验
和字段(16位)置0,将每个16位的反码相加,若是奇数字节即最后未到16字节,
则以0补充,结果存在校验和字段中,因接收端包含了之前的校验和,若传输
中没有任何差错,则接收端计算的校验和该为全1,否则有错,这于IP首部的
二进制反码和的计算类似,注意若计算结果为0,则存入的值为全1,若传送端的
校验和为0,发送端就没计算校验和。更多内容可以看Stevens的《TCP/IP详解》。
李正己 2003-10-10
  • 打赏
  • 举报
回复
大家各抒己见,有的认为会错,有的认为不会错
我应该如何做?

有没有这方面官方资料?

到那个论坛能够得到更多的这方面的建议?
wylpro 2003-10-10
  • 打赏
  • 举报
回复
udp 数据错误率也有呀,不可轻易相信底层查错,它只是功能性的
举个例子: 一般情况下出错
ethernet层 -> 100条 (查出错误包100个)
ip层 -> 20条
tcp/udp层 -> 7-10条
好象把网络说的太不稳定了,呵呵.

好象tcp/udp 查错率 不比 ip 高多少
这是由于tcp,udp,ip都是双字节效验,且双字节对齐.有共性,前一层查不出来,后一层也好不到那去
另外有网络性能工具,可以得到实际数据,一般是网络维护时使用,如SNMP协议就是干这个的
david08 2003-10-10
  • 打赏
  • 举报
回复
You may get some packet lost, but the data those you reveived will be guaranteed correct.
SlaSk 2003-10-10
  • 打赏
  • 举报
回复
在一般情况下, UDP不会收到错误的数据, 因为有校验
但是UDP可能丢失数据, 在网络不稳定或太忙的时候。

事实如此!!!
100%可靠,只能载波监听了...
sharkhuang 2003-10-10
  • 打赏
  • 举报
回复
一般不会!
imsolo 2003-10-09
  • 打赏
  • 举报
回复
UDP不会收到错误的数据,UDP校验和包括数据部分,若接收端校验和有差错,将
丢弃该报文,不产生任何差错报文。UDP校验和是可选的,若关闭改功能,将不能
检测出差错。TCP是面向连接的,可靠的字节流服务,通信之前必须先建立连接,
提供差错控制,流量控制,顺序控制等
C723 2003-10-09
  • 打赏
  • 举报
回复
UP! 顺便问一下 什么叫滑码?
lile2002 2003-10-09
  • 打赏
  • 举报
回复
当然会的
因为传输也不是稳定的
尤其是高峰期,传输层大概有千分之零点零一的滑码
看你的传输层传输方式了,如果不好的话,肯定有
UDP不建立连接的,也没有ACK机制
有错误是正常的,要你在接受端校验。和误嘛纠正。
rtdb 2003-10-09
  • 打赏
  • 举报
回复
在一般情况下, UDP不会收到错误的数据, 因为有校验
但是UDP可能丢失数据, 在网络不稳定或太忙的时候。

不存在100%成功的情况:
比如接收方突然断网,没有任何协议可以保证

要想保证100%就要自己再加上确认机制,
当接收方收到信息后回送一个确认包。


gyhs 2003-10-09
  • 打赏
  • 举报
回复
可能会出现错误吧,最好用TCP
李正己 2003-10-09
  • 打赏
  • 举报
回复
是不是会出现错误的数据,例如发送的是1接收到的是2
简单看了一下udp协议,协议头中提供了校验和字段,不知道能不能校验出所有的错误
TianGuangZao 2003-10-09
  • 打赏
  • 举报
回复
tcp 可以做到。
lemon520 2003-10-09
  • 打赏
  • 举报
回复
有什么网络协议可以保证100%不会出错吗?
ipgk 2003-10-09
  • 打赏
  • 举报
回复
当然会吧,udp本来是一种不可靠的传输协议。不过我也不太懂

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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