Windows phone 7中的设备发现

本文关键字:发现 phone Windows | 更新日期: 2023-09-27 18:18:18

我无法检测网络中存在的设备。我正在使用两个应用程序。一个是用c++写的,另一个是windows phone 7应用程序。从Wp7我发送UDP广播,我从如何在Wp7芒果上广播UDP数据包?我能够广播消息从wp7和接收在c++应用程序,但我不能从c++代码接收UDP数据包。这是我的代码。c#代码

private void PageTitle_Tap(object sender, GestureEventArgs e)
        {
            var ipAddress = IPAddress.Parse("255.255.255.255");
            var endpoint = new IPEndPoint(ipAddress, 4998);
            byte[] data = Encoding.UTF8.GetBytes("hello|4998");
            var args = new SocketAsyncEventArgs();
            args.RemoteEndPoint = endpoint;
            args.SetBuffer(data, 0, data.Length);
            args.Completed += new EventHandler<SocketAsyncEventArgs>(args_Completed);
            socket = new Socket(AddressFamily.InterNetwork,
                SocketType.Dgram,
                ProtocolType.Udp);
            bool result = socket.ConnectAsync(args);
        }
        void args_Completed(object sender, SocketAsyncEventArgs e)
        {
            if (e.SocketError != SocketError.Success)
            {
                return;
            }
            switch (e.LastOperation)
            {
                case SocketAsyncOperation.Connect:
                    bool res = e.ConnectSocket.ReceiveFromAsync(e);
                    break;
                case SocketAsyncOperation.Send:
                    break;
                case SocketAsyncOperation.Receive:
                    break;
            }
        }

c++代码
ServerAddress.sin_family= AF_INET; 
ServerAddress.sin_addr.s_addr= INADDR_ANY;
ServerAddress.sin_port  = htons (PORT_DESKTOP); 
ServerSocket = socket (PF_INET, SOCK_DGRAM, 0);
sendto (ServerSocket, Buffer, sizeof (Buffer), 0, (LPSOCKADDR) &ClientAddress, Length);

我还使用IPADDRESS创建另一个套接字。任何接收消息。但是我不能从c++代码中收到响应。

Windows phone 7中的设备发现

您怀念启用SO_BROADCAST吗?

SOL_SOCKET Socket选项

SO_BROADCAST yes yes DWORD (boolean)配置发送的套接字广播数据。此选项仅对支持的协议有效广播(例如IPX和UDP)。