讨论线程与UDP传输(200分)

  • 主题发起人 主题发起人 红色闪电
  • 开始时间 开始时间

红色闪电

Unregistered / Unconfirmed
GUEST, unregistred user!
要用UDP传输一个20M的文件 我想把它分成2048一份的几十等份 在以五份为一组的形式一次性的
的同时发出!
在接收的时候 这五个等份又是同时能够到达不知道谁先到 又如何把它们来排列!
又不知道如何让这5个等份同时发出 请各位给些提示谢谢
 
1)没有必要自己打包 系统会自动帮你完成ip的拆装的
2)不如用tcp协议
 
最好用tcp协议,除非你这个文件对正确性不太重视
 
用过TNMUDP组件吗?用该组件接受数据包长度不能超过2K,为什么??
 
UDP不能保证安全传输,所以:
不要用UDP!
可以用TCP!
 
用UDP,20M/2048=?你能保证这么多package都准确无误的送到吗?
 
->caowei
UDP很可靠,不会造成数据丢失,起码和TCP一样可靠。数据的丢失重发机制是在底层
完成的,在应用层不用操这份心。
->红色闪电
先不说你折开报文的方法是不是最好,但是可行的,但你得编帧序号,在接收端设缓冲,
接收完毕后再按序号给字节排序。
UDP比TCP快多了--虽然TCP要比UDP用起来方便。
 
udp不提供到达报文的确认,不对收到的报文排序,不提供如滑窗机制的流控,
直接使用ip做无连接的端到端的数据传送;tcp则具有上述udp没有的功能。
udp不提供端之间的数据纠错功能(ip自己在链路层有32位的crc校验),udp包的
第7,8字节提供16位的crc校验,tcp包的17,18字节提供16位的crc校验;udp
发现了数据传输错误,简单丢弃这个数据报,然后向发送端发一个端口不可达的
错误通知icmp,注意:发送端并没有纠正这个错误,或做进一步的处理;tcp发一
个包前会启动一个定时器,如果这个包在接收端发现crc校验错就丢弃它,而且不
确认这个包(tcp的滑窗机制),简单的说就是装作没见过,最终引起发送端的定
时器超时,然后发送端就会重发这个包。
总的说tcp提供的服务可靠性应该说高于udp。一般在对速度要求高而可以降低准确性
的情况下用udp,如语音的传送。
呵呵,改了3次,这次应该是比较清楚了。
 
吕雪松大侠:请看一看这个问题好吗?
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=454660
 
多人接受答案了。
 
后退
顶部