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数据包大文件分包传输和接收组包全部内容,希望对大家有所帮助!
编辑:点点小编