|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non mi funziona UDP O_o
premesso che ho un router adsl che mi bloccava tutte le porte UDP in entrata e che gli ho appena cambiato configurazione aprendole tutte.
non riesco in alcun modo ad inviare/ricevere datagram UDP in multicast, e il bello è che non mi arrivano neanche quando li spedisco con l'opzione di loopback!! O_o ho provato in due modi: in un programma C che sto facendo per l'università li invio senza opzione di loopback (e ovviamente col cavolo che arrivano), ed in un altro programma Java li invio richiedendo anche il loopback, e ovviamente arrivano meno di prima. la cosa strana è che router o non router, se li mando in loopback a me devono comunque tornare, no? preferirei ragionare sul codice Java che è più semplice. secondo voi sbaglio qualcosa nel modo di ricevere o di inviare, che espongo rispettivamente qui di seguito? ricezione: Codice:
try { multicastAddress = InetAddress.getByName(MULTICAST_GROUP); // come gruppo ho scelto momentaneamente 224.0.0.3, che su IANA risulta essere il primo libero socket = new MulticastSocket(MULTICAST_PORT); // come porta uso la 9090 socket.setTimeToLive(255); socket.setLoopbackMode(true); socket.joinGroup(multicastAddress); } catch (Exception e) { showError(); return; } . . . new Thread() { public void run() { DatagramPacket packet; try { byte[] buffer = new byte[socket.getReceiveBufferSize()]; packet = new DatagramPacket(buffer, buffer.length); } catch (SocketException e) { showError(); return; } while (true) { try { socket.receive(packet); } catch (IOException e) { } logText(packet.getData().toString()); } } }.start(); Codice:
String text = ...; byte[] buffer = text.getBytes(); // sono sicuro che "text" contenga del testo (verificato col debugger) try { socket.send(new DatagramPacket(buffer, buffer.length, multicastAddress, MULTICAST_PORT)); } catch (IOException e) { logText("<unable to send message>"); } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
setLoopBackMode(true) DISABILITA il loopback... hai provato con false?
su che sistema operativo lavori? magari potresti dover aprire le porte udp anche a livello di firewall del s.o. (penso per esempio a winxp) nei pc a cui spedisci i pacchetti (ovviamente questo non serve se mandi solo in loopback) Ultima modifica di mad_hhatter : 03-06-2007 alle 01:04. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Stai provando in una LAN vero?
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
be', perché, su Internet invece che dovrebbe succedere? O_o
comunque ho provato anche in LAN, ovvero ho provato quel codice sul mio computer, su uno della LAN, e su uno esterno di un amico. non riceviamo un bel nulla ![]() l'unica differenza è che adesso riceviamo i messaggi che noi stessi inviamo perché ho fatto funzionare il loopback (grazie mad_hhatter). EDIT - su tutti e tre i computers c'è solo il firewall di XP, e quando ha mostrato l'"avviso di protezione" abbiamo detto "Sblocca". |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Su internet deve essere predisposta per il multicast.
E penso che qui tranne per rare accezzioni non vada. In LAN però dovrebbe andare se setti tutto per bene. |
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
mi viene il dubbio che non sia sufficiente... "Sblocca" suppongo che faccia uscire i pacchetti UDP dall'host, ma per assicurarsi che li posso anche ricevere...?
|
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Bhe se la porta di uscita è diversa da quella di entrata sono due le porte da sbloccare ovviamente
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Che in pratica i nodi che creano la rete "internet" devono essere dotati di multicast, se trovo un articolo che lo spiega te lo posto.
Io mi esprimo da cavernicolo... |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
se mando su una porta diversa da quella su cui ricevo, penso che non ricevo nulla... il fatto delle porte diverse penso funzioni con TCP, non col multicast... comunque io ho usato sempre la stessa porta (9090).
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Qui dice qualcosa(ma poco)
Quote:
|
|
![]() |
![]() |
![]() |
#12 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() il multicast UDP è parte dell'implementazione di UDP e quindi dello stack TCP/IP; non credo che i routers del provider siano autorizzati a non implementarlo... ![]() tutt'al più potrebbero avere un firewall che blocca pacchetti UDP. |
|
![]() |
![]() |
![]() |
#14 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
EDIT - ma il "trend" (per così dire) sarebbe quello di favorire l'UDP Multicast o il contrario? cioè, la maggior parte dei providers lasciano passare i pacchetti UDP o li bloccano? bloccano solo quelli diretti a gruppi multicast o li bloccano tutti? Ultima modifica di 71104 : 03-06-2007 alle 14:47. |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Non ne ho idea...ma mi ricordo che anche io provai in java senza risultato.
Sto cercando anche ora e sui gruppi di google si trova di gente che dice che attraverso internet non funzionerà mai... |
![]() |
![]() |
![]() |
#16 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
ma se uno è un utente FastWeb? dicono che gli utenti FastWeb sono come in una grossa LAN, è vero? il multicast funziona tra utenti FastWeb? |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Io non te lo saprei dire, bisognerebbe fare qualche prova per sapere se è una rete predisposta.
E' probabile di si comunque. |
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
![]() |
![]() |
![]() |
#19 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
d'oh: non funge -.-
annuncio ufficialmente che due utenti FastWeb non possono inviarsi pacchetti UDP via multicast ![]() |
![]() |
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ma io dico... se il multicast funziona solo nelle reti locali allora vuol dire che i pacchetti multicast non possono passare nessun router, e questo significa che la possibilità di impostare il TTL è completamente inutile...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:57.