2011-10-10 6 views
8

Secondo lo MSDN documentation Mango non supporta la trasmissione UDP. Secondo questo thread è in qualche modo possibile. Qualcuno ha esperienza con UDP su Phone 7? Sarebbe apprezzato un frammento di codice in C#.Mango Windows Phone 7 supporta la trasmissione UDP?

MODIFICA: Abbiamo fatto ulteriori indagini. Il seguente codice sembra funzionare

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

E 'essenziale per chiamare ConnectToAsync prima SendToAsync, altrimenti si ottiene un'eccezione di accesso negato. UDP sembra funzionare in qualche modo, almeno nell'emulatore. La domanda è: funzionerà nella realtà e perché la documentazione dice che non funziona?

+0

Non vedo "SetSocketOption" sulla classe Socket in WP7 –

+0

Questo codice funziona su un dispositivo Windows Phone? – VansFannel

risposta

3

Per Windows Phone OS 7.1, TCP unicast, unicast UDP e client multicast UDP sono supportati (OS 7.1 significa che Windows Phone 7.5/Mango)

Ecco link alla documentazione sulla classe Socket: http://msdn.microsoft.com/en-us/library/attbb8f5(v=VS.95).aspx

Ecco collegamento a un blog con codice di esempio: http://www.pitorque.de/MisterGoodcat/post/Windows-Phone-7-Mango-Sockets.aspx

E ancora di più il codice di esempio in "09-DemoCode Networking" in http://borntolearn.mslearn.net/wpmango/m/mediagallery/default.aspx

Ecco un altro messaggio che potrebbe ispirare: How to broadcast a UDP packet on WP7 Mango?

C'è stato riferito som firmware del sistema operativo con cattive prestazioni UDP: http://connect.microsoft.com/VisualStudio/feedback/details/690198/poor-udp-performance-in-windows-phone-7-mango

+0

Grazie per i collegamenti, ma in realtà non risponde alla mia domanda se UDP è supportato o meno (per quanto riguarda la documentazione non è, ma abbiamo ottenuto in qualche modo di funzionare, almeno nell'emulatore). – slfan

+0

Secondo questa trasmissione UDP è stato testato e funziona. http://stackoverflow.com/questions/6983815/how-to-broadcast-a-udp-packet-on-wp7-mango – Ronny

+0

Mi riferivo a questo thread nella mia domanda. La domanda è se funziona VERAMENTE su Phone 7 quando la documentazione dice che non lo è. – slfan

0

Il codice di cui sopra non funziona in WP7, questo per la semplice ragione che è SetSocketOption definito in C# ma non in Silverlight. Pertanto, quanto sopra potrebbe funzionare nel tuo computer ma non verrà nemmeno compilato su WP7!

Per quanto riguarda la risposta pratica penso che Ronny abbia risposto bene "TCP unicast, UDP unicast e client multicast UDP sono supportati", a meno che qualcuno non possa pubblicare un codice che supporti la trasmissione UDP su WP7 la risposta rimane "NO".

Penso che questo thread dovrebbe essere chiuso.

+1

Questo dovrebbe essere un commento e non una risposta. – Till

+0

ci deve essere un bug perché non riesco a vedere la casella "Aggiungi commento" sotto i post precedenti .. Mi dispiace –

+0

Non puoi commentare questo post perché il tuo punteggio non è abbastanza alto per commentare le domande di altre persone - controlla il FAQ. – Till