3

我正在开发一个广播是必不可少的应用程序。我创建了两个项目客户端和服务器。我能够发送广播消息,但我没有在服务器项目中接收。我的代码如下

服务器:

    private DatagramSocket _udpSocket = new DatagramSocket();
    private async void Button_Click_1(object sender, RoutedEventArgs e)
    {
        _udpSocket.MessageReceived += _udpSocket_MessageReceived;
       
        await _udpSocket.BindServiceNameAsync("4777");                       
    }

    void _udpSocket_MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
    {
      
    }

客户

        HostName h = new HostName("255.255.255.255");
        IOutputStream outStream = await _socket.GetOutputStreamAsync(h, "4777");
       
        DataWriter de = new DataWriter(outStream);
        de.WriteByte(new byte());
        await de.StoreAsync();
        de.DetachBuffer();

但是如果在客户端我用本地 IPAddress 替换 255.255.255.255,我可以在服务器上接收到消息。

问题是什么?

4

1 回答 1

2

如果我记得我的网络 101 类,当你进行广播时,数据包不会发回给你,只会发给网络上的所有其他计算机(我可能错了)。此外,就像 TimVK 在他的评论中所说,您应该尝试使用您的网络的广播地址而不是一般广播(对于网络192.168.0.0/24(掩码255.255.255.0),广播将是192.168.0.255

于 2014-10-10T04:36:42.960 回答