C# Can';不能在WinRT中接收广播

C# Can';不能在WinRT中接收广播,c#,windows-runtime,C#,Windows Runtime,我试图在WinRT/C#中通过DatagramSockets接收广播,但我没有收到数据包 更具体地说,这是我的代码: public sealed partial class MainPage : Page { public MainPage(){ this.InitializeComponent(); } private DatagramSocket listener; async private void Loaded(object se

我试图在WinRT/C#中通过DatagramSockets接收广播,但我没有收到数据包

更具体地说,这是我的代码:

public sealed partial class MainPage : Page
 {
    public MainPage(){
        this.InitializeComponent();
    }

    private DatagramSocket listener;

    async private void  Loaded(object sender, RoutedEventArgs e) {
        listener = new DatagramSocket();
        listener.MessageReceived += MessageReceived;
        await listener.BindServiceNameAsync("50011");
    }

    private void MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args) {
        txtText.Text = "Win :D:D:D:D:D:D:D"; //Breakpoint here
    }
}
程序永远不会到达断点。 我已在appxmanifest中设置了所有正确的权限。 发送广播的节目如下:

static void Main(string[] args) {
        Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
        IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 50011);

        string hostname = Dns.GetHostName();
        byte[] data = new byte[1];
        data[0] = 129;
        while (true) {
            sock.SendTo(data, iep);
            Console.WriteLine("Daten gesendet: {0}", data[0]);
            Thread.Sleep(1000);
        }
    }
我知道这个程序可以运行,因为我在同一台PC上用另一个小C#程序对它进行了测试(但没有WinRT功能,只是普通的C#)。此外,这也不可能是防火墙或路由问题,因为正如我刚才提到的,它已经使用了一个普通的C#程序(但我已经尝试关闭防火墙)

我目前正在使用Windows 8.1和x64处理器在Wifi网络上进行尝试。 我错过什么了吗?有可能吗

我希望你们中有人能帮助我

(附言:我知道这和这篇帖子很相似:但已经一年多没有进展了,所以…

我解决了它。 您只需从其他设备发送广播。
但是,它不喜欢从同一设备发送广播……

对于windows phone,我发现只有在发送一些数据包后才能接收数据包。它可能也适用于WinRT。