C# pcl插座不';t按预期进行多播

C# pcl插座不';t按预期进行多播,c#,networking,windows-phone-8,udp,C#,Networking,Windows Phone 8,Udp,我想在WP8.1上试验UDP多播,发现了这个问题。 我已经创建了两个应用程序,一个在WP8.1上,一个在桌面上,我将只提供C#代码,因为WPF在这里是不相关的。 WP8.1: 桌面(几乎相同): 现在发生了什么(在实际手机上调试): 从桌面应用发送的消息不会发送到手机应用,反之亦然 从桌面应用发送的消息在桌面应用的输出中可见(如预期) 从手机应用发送的消息在手机应用输出中出现3次(是-MessageReceived事件触发3次) 在WP8.1模拟器上(与桌面应用程序在同一台PC上运行):

我想在WP8.1上试验UDP多播,发现了这个问题。
我已经创建了两个应用程序,一个在WP8.1上,一个在桌面上,我将只提供C#代码,因为WPF在这里是不相关的。
WP8.1:

桌面(几乎相同):

现在发生了什么(在实际手机上调试):

  • 从桌面应用发送的消息不会发送到手机应用,反之亦然
  • 从桌面应用发送的消息在桌面应用的输出中可见(如预期)
  • 从手机应用发送的消息在手机应用输出中出现3次(是-MessageReceived事件触发3次)
在WP8.1模拟器上(与桌面应用程序在同一台PC上运行):

  • 正在应用之间发送消息
  • 从手机应用发送的消息仍会在手机应用输出中出现两次
我希望这是一个非常简单的任务,正如您所看到的,代码是最小的。我做错什么了吗?还是图书馆有问题(有点怀疑)?如果有人以前使用过此库,我将非常感谢您的帮助,谢谢:)

public sealed partial class MainPage : Page
{
    int port = 11811;
    string ip = "239.123.123.123";
    UdpSocketMulticastClient udp;

    public MainPage()
    {
        this.InitializeComponent();
        this.NavigationCacheMode = NavigationCacheMode.Required;
    }

    async protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        udp = new UdpSocketMulticastClient();
        udp.MessageReceived += (sender, args) =>
        {
            var data = Encoding.UTF8.GetString(args.ByteData, 0, args.ByteData.Length);
            Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                lblChat.Text += "\n" + data;
            });
        };
        await udp.JoinMulticastGroupAsync(ip, port);
    }

    async private void btnSend_Click(object sender, RoutedEventArgs e)
    {
        var msgBytes = Encoding.UTF8.GetBytes(txtEntry.Text);
        await udp.SendMulticastAsync(msgBytes);
    }
}
public partial class MainWindow : Window
{
    int port = 11811;
    string ip = "239.123.123.123";
    UdpSocketMulticastClient udp;

    public MainWindow()
    {
        InitializeComponent();

        udp = new UdpSocketMulticastClient();
        udp.MessageReceived += (sender, args) =>
        {
            var data = Encoding.UTF8.GetString(args.ByteData, 0, args.ByteData.Length);
            lblChat.Text += "\n" + data;
        };
        udp.JoinMulticastGroupAsync(ip, port);
    }

    async private void btnSend_Click(object sender, RoutedEventArgs e)
    {
        var msgBytes = Encoding.UTF8.GetBytes(txtEntry.Text);
        await udp.SendMulticastAsync(msgBytes);
    }
}