slf*_*fan 8 c# udp broadcast windows-phone-7
根据MSDN文档, Mango不支持UDP广播.根据这个线程,它在某种程度上是可能的.有人在Phone 7上有过UDP的经验吗?C#中的代码片段将不胜感激.
编辑:我们做了一些进一步的调查.以下代码似乎有效
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
byte[] data = Encoding.UTF8.GetBytes("test data");
SocketAsyncEventArgs a = new SocketAsyncEventArgs();
a.RemoteEndPoint = new IPEndPoint(IPAddress.Broadcast, 11000);
a.SetBuffer(data, 0, data.Length);
a.Completed += new EventHandler<SocketAsyncEventArgs>(delegate(object s, SocketAsyncEventArgs e)
{
Console.WriteLine(e.SocketError);
// here you can call socket.SendToAsync(sendEventArgs);
});
socket.ConnectToAsync(a);
Run Code Online (Sandbox Code Playgroud)
必须在SendToAsync之前调用ConnectToAsync,否则会出现访问被拒绝的异常.UDP似乎以某种方式工作,至少在模拟器中.问题是,它是否会在现实中起作用,为什么文档说它没有?
对于 Windows Phone OS 7.1,支持 TCP 单播、UDP 单播和 UDP 多播客户端(OS 7.1 表示 Windows Phone 7.5/Mango)
以下是有关 Socket 类的文档的链接:http://msdn.microsoft.com/en-us/library/attbb8f5( v=VS.95).aspx
以下是包含示例代码的博客的链接:http://www.pitorque.de/MisterGoodcat/post/Windows-Phone-7-Mango-Sockets.aspx
以及http://borntolearn.mslearn.net/wpmango/m/mediagallery/default.aspx中“09-DemoCode Networking”下的更多示例代码
这是另一条可能会启发您的消息:如何在 WP7 Mango 上广播 UDP 数据包?
据报告,某些操作系统固件的 UDP 性能较差:http://connect.microsoft.com/VisualStudio/feedback/details/690198/poor-udp-performance-in-windows-phone-7-mango