问一下udp基础知识

jiju 2003-02-18 09:35:57
如果使用组播形式,假设有多台机器循环多次发一个包(包的大小很小,考虑在512b以下,不产生丢包的情况)单看其中一台机器,这台机器会不会把一些包组合后,在传给你?
也就是说:
假设这些机器上的程序如下:
for(int i=0;i《1024;i++)
{
sendto("china");
}
那么其中一台机器
char ch【1024】;
recvfrom(ch);
ch可不可能会等于"chinachina"或“chinachi”;如果产生,“chinachina”可不可能是分别由两台不同的机器传输来的?(我想大概是不可能,要不然最后一个参数是什么呢!),如何避免?
...全文
20 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CQP 2003-02-18
  • 打赏
  • 举报
回复
UDP是使用IP协议在计算机数据交换时提供一定服务的通信协议。UDP是TCP的另外一种方法,象TCP一样,UDP使用IP协议来获得数据单元(叫做数据报),不象TCP的是,它不提供包(数据报)的分组和组装服务。

而且,它还不提供对包的排序,这意味着,程序程序必须自己确定信息是否完全地正确地到达目的地。如果网络程序要加快处理速度,那使用UPD就比TCP 要好。

TFTP就使用UDP而不使用TCP。UDP提供两种不由IP层提供的服务,它提供端口号来区别不同用户的请求,而且可以提供奇偶校验。在OSI模式中,UDP和TCP一样处于第四层,传输层。

http://www.longen.org/S-Z/details~z/udp.htm
jiju 2003-02-18
  • 打赏
  • 举报
回复
我设置断点时的确看到了"chinachina"
foxmail 2003-02-18
  • 打赏
  • 举报
回复
udp是有界的
udp不保证传输的正确性阿
所以还是有可能丢包或者传错的
jemmylau 2003-02-18
  • 打赏
  • 举报
回复
不可能的,udp是有界的,也就是说,每个包都是独立的。这不同于tcp,它是基于流的。

18,356

社区成员

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

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