Mam gniazdko UDP nasłuchujące na porcie X, gdy próbuję stworzyć gniazdko wysyłające w trybie Broadcast na tym samym porcie, otrzymuję wyjątek "Address in use" - co jest nie tak?
13:09Tue, 15 April 2014
Problemem nie jest oczywiście to, że oba typy gniazdek działają na tym samym porcie - w tym wypadku dane wysyłane przez gniazdko wysyłające, będą rozgłaszane po sieci i trafią również do naszego gniazdka nasłuchującego.
Problemem jest tutaj co innego (miałem z tym spory kłopot). Otóż okazuje się, że w takim wypadku, gniazdka wysyłającego nie możemy utworzyć tak:
socket = new DatagramSocket(1234);
Zamiast tego, gniazdko wysyłające należy utworzyć i korzystać z niego w ten sposób:
socket = new DatagramSocket();
datagramPacket = new DatagramPacket(data, data.length, address, 1234);
socket.send(datagramPacket);
Należy pamiętać również o tym, że nie mając uprawnień root, w urządzeniach z Androidem możemy nasłuchiwać jedynie na portach wyższych od 1024.Podobne faq:
Skomentuj
Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.
Komentarze czytelników
Nie ma jeszcze żadnych komentarzy.