Я хочу отправить пакет UDP с телефона на ограниченный широковещательный адрес (IPAddress.Broadcast = 255.255.255.255).
Это то, что у меня есть, и оно работает в приложении для Windows:
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);
});
socket.SendToAsync(a);
Требование SetSocketOption требуется для предотвращения исключения «отказ в доступе». К сожалению, этот метод не доступен в WP7. Пример кода UDP, приведенный на сайте сообщества App Hub, использует многоадресную передачу для достижения аналогичных результатов, но устройство, с которым я пытаюсь связаться, не может работать с многоадресной передачей.
Есть ли способ сделать такую трансляцию на Манго?