日期:2014-05-18  浏览次数:20833 次

udpClient的怪异问题
发送代码:
 UdpClient myUdpClient = new UdpClient();
 byte[] myData = Encoding.Default.GetBytes(textBox2.Text.ToString());
 myUdpClient.Send(myData, myData.Length, new IPEndPoint(IPAddress.Parse(textBox1.Text),10007));

接受代码:
 UdpClient youUdpClient = new UdpClient(80);
 IPEndPoint myIPEndPoint = new IPEndPoint(IPAddress.Any, 80);
 byte[] mydata = youUdpClient.Receive(ref myIPEndPoint);
  richTextBox1.AppendText(Encoding.Default.GetString(mydata).ToString()+"\n");

经过大半年的运行都是正常的,但是现在两台pc机出现了问题:
  1>发送数据时(包括给本机发送信息)报错:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
  2>其它pc机给它发送数据包,没有任何响应,无法接受数据包。

请各位大侠给个解决的办法,不胜感激啊

------解决方案--------------------
你用360的网络检测工具检查下系统当前的网络连接状况,端口是否被占用,网络流量是否饱和。
------解决方案--------------------
运行多久出现的??
代码太少看不出问题
是否有循环发送.
------解决方案--------------------
windows防火墙是否屏蔽了相关端口??
------解决方案--------------------
以前是好的,说明程序是好的,现在这样了,说明其它什么东西产生了影响,你需要检测最近安装过的程序,特别是杀毒软件的防火墙功能是否有更新。
我有一个经历,就是被诺顿防火墙把所有的非HTTP协议给拦截了,自己用的TCP协议死活无法连接,后关闭诺顿防火墙就好了。
------解决方案--------------------
探讨
经过大半年的运行都是正常的,但是现在两台pc机出现了问题:
1>发送数据时(包括给本机发送信息)报错:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
2>其它pc机给它发送数据包,没有任何响应,无法接受数据包。

------解决方案--------------------
除了端口的问题外就是网络或者存储空间的问题
------解决方案--------------------
更换udp端口,用工具测试下端口是否通顺