我想问一下,我用UDP循环群发消息。
    为什么,发到某个IP出现10022错误(错误提示为:有一个无效参数)。。    代码如下:
                   IPAddress ipTemp = null; 
                IPEndPoint ipend = null;                   for (int i = 1; i < 256 ; i++)
                { 
                    ipTemp =IPAddress.Parse(strIP + i.ToString());  //strIP :IP的前三段。比如:192.168.0.这个样子                    ipend = new IPEndPoint(ipTemp, 5471);                    udp.Send(buff, buff.Length, ipend);
                }    目前是在另外一台电脑上,每次循环到i=100的时候(也就是向192.168.0.100发送)就抛异常。而在开发的这台机器上,没有这个问题。    不知道是什么问题。。    

解决方案 »

  1.   

    ipTemp =IPAddress.Parse("192.168.0.255");
    ipend = new IPEndPoint(ipTemp, 5471); 
    udp.Send(buff, buff.Length, ipend); 
      

  2.   

    ipTemp =IPAddress.Parse("192.168.0.255"); 
    广播地址 不用一个一个去循环试试
      

  3.   

    首先谢谢楼上。。结果是不行的。。因为我也有监听UPD信息。结果没有收到消息。【除非ipTemp =IPAddress.Parse("192.168.0.255"); 这样发送不包括本机IP】
    其实,我那问题关键是为什么中间有的IP发送不出去,而且换台电脑就没有这个问题呢。
    比较晕~
      

  4.   

    同一个子网的广播没这么麻烦,一句话就搞定:udp.Send(buff, buff.Length, new IPEndPoint(IPAddress.Broadcast, 5471));