具有UWP的UDP表现不同

时间:2016-09-07 07:52:10

标签: udp windows-10-iot-core

我写了一个发送UDP数据报的应用程序。如果我在装有Windows 10的计算机上试用它,它可以正常工作,另一个设备(商用)可以正确响应。如果我在Windows 10 IoT(Raspberry Pi2)上执行相同的应用程序,则设备不响应​​。首先是防火墙问题。因此,我查看了WireShark的流量。在这两种情况下,通过WLAN发送的数据报都是相同的。在Windows 10的情况下,我看到设备的响应,如果物联网没有响应。

以下是我用来发送数据报的方法:

    private async void FindDevice()
    {
        DatagramSocket socket = new DatagramSocket();
        socket.MessageReceived += Socket_MessageReceived;
        IPAddress ipAddressOfSender;
        // device must be in the same network
        if (IPAddress.TryParse("192.168.0.1", out ipAddressOfSender))
        {
            byte[] broadcastIpAddress = ipAddressOfSender.GetAddressBytes();
            // Assuming to work with a class C IP address, so broadcast address looks like a.b.c.255
            broadcastIpAddress[3] = 255;

            using (var stream = await socket.GetOutputStreamAsync(new HostName(new IPAddress(broadcastIpAddress).ToString()), SendingPort.ToString()))
            {
                using (var writer = new DataWriter(stream))
                {
                    byte[] helloSmartPlugs = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x45, 0x44, 0x49, 0x4d, 0x41,
                                        0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xff, 0x5e };

                    writer.WriteBytes(helloSmartPlugs);
                    await writer.StoreAsync();
                }
            }
        }
    }

在某些示例中,还绑定了侦听器端口。没关系,如果我这样做,它仍然适用于Windows,但不适用于物联网。有人可以解释一下吗?我以为我需要听众端口。

可能是什么原因,设备在物联网的情况下没有回答?我必须在套接字上提供设置吗?

0 个答案:

没有答案