Multicast
#21
Inviato 22 giugno 2011 - 12:28
Praticamente era il SO_REUSECOSO ma non avevo pensato che, usando il mio RTP plugin, se ne aprono 2 di socket (rtp e rtcp) e l'option va messa ad entrambi.
Grazie MadJackal
Thanks boost
#22
Inviato 22 giugno 2011 - 12:53
Grazie MadJackal
Ecco, ringrazia boost, che io ho failato su tutta la linea confondendo TCP ed UDP
#23
Inviato 22 giugno 2011 - 13:01
Vabbè ma sei stato utile lo stesso. Hai presente il "debug confessionale" ?
?[/url]":1sd1buhe]
Grazie MadJackal
Ecco, ringrazia boost, che io ho failato su tutta la linea confondendo TCP ed UDP
#24
Inviato 22 giugno 2011 - 13:05
Lui continuava a dire che la sua libreria non aveva bug, che non potevo aprire più applicazioni per colpa del SO, invece...
#25
Inviato 22 giugno 2011 - 14:21
La cosa più bella è che emailando con Jori (autore delle jrtplib) alla fine avevo ragione io
Lui continuava a dire che la sua libreria non aveva bug, che non potevo aprire più applicazioni per colpa del SO, invece...
Il tuo scenario è troppo raro, se usi un socket TCP/UDP unicast ha ragione lui.
Il problema è il multicast, che fa così cagare che non usa nessuno.
#26
Inviato 22 giugno 2011 - 14:56
Il mio plugin usa la sua libreria rtp/multicast.
?[/url]":34huww1t] La cosa più bella è che emailando con Jori (autore delle jrtplib) alla fine avevo ragione io
Lui continuava a dire che la sua libreria non aveva bug, che non potevo aprire più applicazioni per colpa del SO, invece...
Il tuo scenario è troppo raro, se usi un socket TCP/UDP unicast ha ragione lui.
Il problema è il multicast, che fa così cagare che non usa nessuno.
Niente, oggi non ne azzecchi una
#27
Inviato 22 giugno 2011 - 16:35
Il mio plugin usa la sua libreria rtp/multicast.
Niente, oggi non ne azzecchi una
#28
Inviato 29 giugno 2011 - 09:08
Abbiamo testato sui fit-pc e non funziona 'na ceppa
In pratica pare che il rt kernel Abbraccianigga OS 8.04 non permetta l'uso del multicast che è la base del nostro sistema di comunicazione. Tutto il castello che abbiamo creato è crollato per una stronzatina.
Stiamo valutando l'idea di dare un'aggiornatina ai kernels
#29
Inviato 29 giugno 2011 - 09:12
Colpa vostra che usate Abbraccianigga OS al di fuori del cazzeggioAggiornamenti: usavo male le jrtplib perché insistevo nel fare un solo plugin per send/receive ma poi, guardando i vari esempi, ho visto che tutti fanno 2 clients separati, uno per send, uno per receive. Quindi ho creato 2 plugins e tutto funziona like a charm... sui pc!
Abbiamo testato sui fit-pc e non funziona 'na ceppa
In pratica pare che il rt kernel Abbraccianigga OS 8.04 non permetta l'uso del multicast che è la base del nostro sistema di comunicazione. Tutto il castello che abbiamo creato è crollato per una stronzatina.
Stiamo valutando l'idea di dare un'aggiornatina ai kernels
#30
Inviato 29 giugno 2011 - 09:18
Colpa vostra che usate Abbraccianigga OS al di fuori del cazzeggioAggiornamenti: usavo male le jrtplib perché insistevo nel fare un solo plugin per send/receive ma poi' date=' guardando i vari esempi, ho visto che tutti fanno 2 clients separati, uno per send, uno per receive. Quindi ho creato 2 plugins e tutto funziona like a charm... [b']sui pc[/b]!
Abbiamo testato sui fit-pc e non funziona 'na ceppa
In pratica pare che il rt kernel Abbraccianigga OS 8.04 non permetta l'uso del multicast che è la base del nostro sistema di comunicazione. Tutto il castello che abbiamo creato è crollato per una stronzatina.
Stiamo valutando l'idea di dare un'aggiornatina ai kernels
#31
Inviato 29 giugno 2011 - 14:30
#32
Inviato 30 giugno 2011 - 08:31
Nel rt kernel ufficiale di Abbraccianigga OS 8.04 (lo stesso di Abbraccianigga OS studio) il multicast funziona, quindi il bug è nel kernel di quei cazzoni della Compulab (http://www.fit-pc.com/web).
Già provato ad abilitarla via ifconfig? (ifconfig ethX multicast) e, mentre mia madre succhia cazzi, a controllare se crea qualcosa nella tabella di routing (route -n)?
Immagino di sì, ma chiedo perchè voglio failare MOAR.
Altrimenti ricompilate il kernel, è easy (soprattutto se esiste /proc/config.gz)
Comunque fighi quei fit-pc. Peccato che non abbiano abbastanza porte per usarli come router.
#33
Inviato 30 giugno 2011 - 08:48
Comunque usavamo il kernel della Compulab perché al tempo non esisteva un rt kernel 8.04.
Poi è uscito quindi ora usiamo quello ufficiale anche se stiamo upgradedando al 10.04 (infatti oggi ho ricevuto un hd nuovo e ci devo installare il 10.04).
#34
Inviato 22 giugno 2011 - 08:02
#35
Inviato 22 giugno 2011 - 08:38
#36
Inviato 22 giugno 2011 - 08:40
#37
Inviato 22 giugno 2011 - 09:01
Se apro 2 applicazioni su 2 PC sulla porta 4000 che comunicano su 225.0.0.1, tutto funziona a meraviglia.
Se provo a fare un JoinMulticastGroup 225.0.0.2 porta 5000 non va niente perché, pare, se apri le applicazioni sulla porta 4000, quella puoi usare e basta.
Siccome ci servono più applicazioni sullo stesso PC, mi tocca aprirle tutte sulla porta 4000 e non ci riesco perché la porta, una volta aperta la prima applicazione, è busy.
Quindi: come cacchio faccio ad aprire più applicazioni che usano la stessa porta ?
ho già provato la socket option SO_REUSEADDRESS ma nada.
#38
Inviato 22 giugno 2011 - 09:10
SO_REUSEADDR e SO_REUSEPORT non fanno quello che ti aspetti.
Edito per chiarezza:
1. SO_REUSEPORT non c'è sotto linux, solo sotto *BSD, quindi non so se ti interessa.
2. SO_REUSEADDR ti permette di bindarti() ad un indirizzo/porta già bindato, SE questo è in TIME_WAIT. Se è in altro stato ti viene restituito un errore. Non c'è nulla di "contemporaneo", IIRC la vecchia applicazione che era in bind() sul socket viene "sbindata".
#39
Inviato 22 giugno 2011 - 09:23
AFAIK non puoi, a meno di non usare un qualche "middleware" tra le tue applicazioni e la porta in questione (ed avere un modo per "distinguere" cosa va ad una e cosa all'altra). La bind() è il punto chiave della questione, se la usi (e DEVI), non puoi più usare la porta con un'altra applicazione.
SO_REUSEADDR e SO_REUSEPORT non fanno quello che ti aspetti.
Grazie.
Ma quello che non capisco è perché non posso fare un join multicast address su una porta diversa. Cioè, posso usare UNA sola porta ???
#40
Inviato 22 giugno 2011 - 09:31
socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true));