热搜:

C#实现UDP数据包大文件分包传输和接收组包

2013-04-14 16:29:56文章来源:点点软件园热度:0

更多

更多最新IT资讯尽在金顺软件园http://www.jinshun168.com/

  如果需要使用UDP传输较大数据,例如传输10M的图片,这突破了UDP的设计原则。UDP的设计是基于"datagram",也就是它假设你发送的每个数据包都能包含在单一的包内。并且设定UDP数据包的最大长度受基础网络协议的限制。

  UDP数据包的理论最大长度限制是 65535 bytes,这包含 8 bytes 数据包头和 65527 bytes 数据。但如果基于IPv4网络传输,则还需减去 20 bytes 的IP数据包头。

  则单一的UDP数据包可传输的数据最大长度为:

  MaxUdpDataLength = 65535 - 8 - 20 = 65507 bytes

  这就需要实现UDP包的分包传输和接收组包功能。

  分包功能

  1 ///


  2 /// UDP数据包分割器

  3 ///


  4 public static class UdpPacketSplitter

  5 {

  6 ///


  7 /// 分割UDP数据包

  8 ///


  9 /// UDP数据包所持有的序号

  10 /// 被分割的UDP数据包

  11 /// 分割块的长度

  12 ///

  13 /// 分割后的UDP数据包列表

以上,就是金顺软件园小编给大家带来的C#实现UDP数据包大文件分包传输和接收组包全部内容,希望对大家有所帮助!

上一篇全球最受欢迎Android平板:三星Galaxy Tab 2和Galaxy Tab10.1下一篇CF火线魔盒怎么设置游戏路径
编辑:点点小编