为什么我收不到255.255.255.255广播的消息呢。255.255.255.255有什么特殊的意义还是接收端需要什么呀。。
我该怎么接收才能收到255.255.255.255发的广播消息呢。。
谁可以告诉我啊。

解决方案 »

  1.   


    static void Main(string[] args)
            {
                //接收端:
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//初始化一个Scoket协议            IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9095);//初始化一个侦听局域网内部所有IP和指定端口            EndPoint ep = (EndPoint)iep;            socket.Bind(iep);//绑定这个实例
                
                while (true)
                {
                    byte[] buffer = new byte[1024];//设置缓冲数据流                socket.ReceiveFrom(buffer, ref ep);//接收数据,并确把数据设置到缓冲流里面                Console.WriteLine(Encoding.Unicode.GetString(buffer).TrimEnd('\u0000') + " " + DateTime.Now.ToString());
                }
            }
    //发送端:
                while (true)
                {
                    Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//初始化一个Scoket实习,采用UDP传输
                    IPAddress ip = IPAddress.Broadcast;// IPAddress.Parse("192.168.18.8");
                    
                    IPEndPoint iep = new IPEndPoint(ip, 9095);//初始化一个发送广播和指定端口的网络端口实例                sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);//设置该scoket实例的发送形式                string request = Console.ReadLine();//初始化需要发送而的发送数据                byte[] buffer = Encoding.Unicode.GetBytes(request);                sock.SendTo(buffer, iep);                sock.Close();我觉得我的代码写的没有问题啊
      

  2.   

    不是啊。
    public static void PrintBroadcastAddress()
            {
                // Get the IP Broadcast address and convert it to string.
                string ipAddressString = IPAddress.Broadcast.ToString();
                Console.WriteLine("Broadcast IP address: {0}", ipAddressString);
            }这是msdn上的,我运行出来了结果就是255.255.255.255