Csharp/C#教程:Windows Phone 7中的设备发现分享


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)。

上述就是C#学习教程:Windows Phone 7中的设备发现分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1026921.html

(0)
上一篇 2022年1月9日
下一篇 2022年1月9日

精彩推荐