Windows Phone 7中的设备发现

我无法检测到网络中存在的设备。 我正在使用两个应用程序。 一个是用C ++编写的,另一个是windows phone 7 app。 从Wp7我发送UDP广播,我是从如何在WP7芒果上广播UDP数据包中提到的? 我能够从wp7广播消息并在C ++ app中接收。但是我无法从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(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.Any创建另一个套接字来接收消息。但是我无法从c ++代码接收响应。

提前致谢。

你错过了启用SO_BROADCAST吗?

SOL_SOCKET套接字选项 :

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