2011-10-10 15 views
8

Zgodnie z MSDN documentation Mango nie obsługuje emisji UDP. Zgodnie z tym thread jest to jakoś możliwe. Czy ktokolwiek ma doświadczenie z UDP na telefonie 7? Fragment kodu w języku C# byłby doceniony.Czy Windows Phone 7 Mango obsługuje transmisję UDP?

EDYCJA: Przeprowadziliśmy dalsze dochodzenia. Poniższy kod wydaje się działać

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

Istotne jest, aby zadzwonić ConnectToAsync przed SendToAsync, inaczej dostaniesz wyjątek odmowa dostępu. Wydaje się, że UDP działa jakoś, przynajmniej w emulatorze. Pytanie brzmi, czy będzie działać w rzeczywistości i dlaczego dokumentacja mówi, że tak nie jest?

+0

Nie widzę "SetSocketOption" na klasie Socket w pakiecie WP7 –

+0

Czy ten kod będzie działać na urządzeniu z systemem Windows Phone? – VansFannel

Odpowiedz

3

Dla Windows Phone OS 7.1, unicast TCP, unicast UDP i UDP klientów multiemisji są obsługiwane (OS 7.1 oznacza, Windows Phone 7.5/Mango)

Oto link dokumentacji o klasie Socket: http://msdn.microsoft.com/en-us/library/attbb8f5(v=VS.95).aspx

Oto link w blogu z przykładowym kodem: http://www.pitorque.de/MisterGoodcat/post/Windows-Phone-7-Mango-Sockets.aspx

a jeszcze bardziej przykładowy kod pod "09-DemoCode Networking" w http://borntolearn.mslearn.net/wpmango/m/mediagallery/default.aspx

Oto kolejny komunikat, że może inspirować: How to broadcast a UDP packet on WP7 Mango?

Nie odnotowano som OS firmware ze złych UDP usług: http://connect.microsoft.com/VisualStudio/feedback/details/690198/poor-udp-performance-in-windows-phone-7-mango

+0

Dziękuję za linki, ale tak naprawdę to nie odpowiada na moje pytanie, czy UDP jest obsługiwane, czy nie (jeśli chodzi o dokumentację, to nie jest, ale mamy go jakoś działać, przynajmniej w emulatorze). – slfan

+0

Zgodnie z tą transmisją UDP została przetestowana i działa. http://stackoverflow.com/questions/6983815/how-to-broadcast-a-udp-packet-on-wp7-mango – Ronny

+0

Miałem na myśli ten wątek w moim pytaniu. Pytanie brzmi, czy NAPRAWDĘ działa na telefonie 7, gdy dokumentacja mówi, że tak nie jest. – slfan

0

Powyższy kod nie działa w WP7, to z tego prostego powodu, że jest SetSocketOption zdefiniowane w C#, ale nie w Silverlight. Dlatego powyższe może działać na komputerze, ale nie będzie nawet skompilować na WP7!

Jeśli chodzi o praktyczną odpowiedź, sądzę, że Ronny dobrze odpowiedział: "Obsługiwane są połączenia TCP w sieci, UDP unicast i UDP multicast", o ile ktoś nie może opublikować kodu obsługującego transmisję UDP na WP7, odpowiedź pozostaje "NIE".

Myślę, że ten wątek powinien zostać zamknięty.

+1

To powinien być komentarz, a nie odpowiedź. – Till

+0

musi być jakiś błąd, ponieważ nie widzę pola "Dodaj komentarz" pod poprzednimi wpisami .. Przepraszam –

+0

Nie możesz komentować tego posta, ponieważ twój wynik nie jest wystarczająco wysoki, by komentować pytania innych ludzi - sprawdź FAQ. – Till

Powiązane problemy