В соответствии с MSDN documentation Манго не поддерживает широковещательную передачу UDP. В соответствии с этим thread это возможно. Есть ли у кого-нибудь опыт работы с UDP на телефоне 7? Будет оценен фрагмент кода в C#.Поддерживает ли Windows Phone 7 Mango передачу UDP?
EDIT: Мы провели ряд дальнейших исследований. Следующий код, кажется, работает
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);
Необходимо позвонить ConnectToAsync перед тем SendToAsync, в противном случае вы получите доступ запрещен исключение. UDP, похоже, работает как-то, по крайней мере, в эмуляторе. Вопрос в том, будет ли он работать в реальной жизни и почему в документации говорится, что нет?
Я не вижу «SetSocketOption» в классе Socket в WP7 –
Будет ли этот код работать на устройстве Windows Phone? – VansFannel