当前位置: 代码迷 >> C# >> c#udp通讯原理
  详细解决方案

c#udp通讯原理

热度:133   发布时间:2016-05-05 05:02:50.0
c#udp通信原理
如果PC C的一个UDP端口同时收到PC A,和PC B 发送的数据,C是怎么处理呢?都放入缓存?然后再分别处理?还是在放入缓存前就有个队列,一个个来?还是会报错?新手请指教!
------解决思路----------------------
注意,在.net中要使用UdpClient 类,而不要使用 Socket 类!

它跟 tcp 的机制完全不一样,它只能处理很短很小的数据(几十k大小),一次收到一个完整包,既不存在分包也不存在粘包,因此也不需要消息缓存。

同时你也不需要在服务器端保存客户端的连接通道对象,每收到一个消息包你都分别需要使用 Receive 操作的第二个参数来获取客户端 EndPoint,以便用来作为返回信息的地址。
------解决思路----------------------
一个时刻,以太网上只有一个数据桢在传输,你应该知道冲突处理机制,所以,在同一个瞬间,是不可能有两个信号在以太网上传输的,所以,也就不存在同时到达的问题。
------解决思路----------------------
以太网网线其实就是2对双绞线,1对负责发送,1对负责接收
所谓信号,数据,不过是一组1,0,1,0,在线路里就是高电平低电平
数据必须是串行的,不能并行
  相关解决方案