日期:2014-05-20  浏览次数:20955 次

关于SocketType.Dgram模式通讯的问题
MSDN上说:
SocketType.Dgram 支持数据报,即最大长度固定(通常很小)的无连接、不可靠消息。消息可能会丢失或重复并可能在到达时不按顺序排列。Dgram 类型的 Socket 在发送和接收数据之前不需要任何连接,并且可以与多个对方主机进行通信。Dgram 使用数据报协议 (Udp) 和 InterNetworkAddressFamily。  



1. 消息可能重复。
  是不是说,SendTo(new byte(){0,1,2,3,4,5}, 对方主机EP);
  对方主机收到的数据有可能收到两次或更多次的{0,1,2,3,4,5}??

2. 到达时不按顺序排列。
  是不是说,SendTo(new byte(){0,1,2,3,4,5}, 对方主机EP);
  对方主机收到的数据有可能是{1,5,0,2,3,4}

  或者说是另一种意思, 比如第一次发送{1,2,3,4,5}, 第二次发送{12,23,34,45};
  对方主要先收到{12,23,34,45}, 后收到{1,2,3,4,5}


有哪位朋友帮忙说明一下。
谢谢。

------解决方案--------------------
1. 消息可能重复。 
是不是说,SendTo(new byte(){0,1,2,3,4,5}, 对方主机EP); 
对方主机收到的数据有可能收到两次或更多次的{0,1,2,3,4,5}?? 

是的

2. 到达时不按顺序排列

 或者说是另一种意思, 比如第一次发送{1,2,3,4,5}, 第二次发送{12,23,34,45}; 
对方主要先收到{12,23,34,45}, 后收到{1,2,3,4,5}