[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Dubbio amletico sulle socket




Per quanto riguarda la risposta di Michele [...], il dubbio che mi
rimane, è se i due thread possono scambiarsi le risposte, anche se nel
pacchetto UDP dovrebbe essere indicato l'indirizzo della moxa, e quindi il
riferimento alla socket che ha generato la chiamata... se invece dovesse
esserci questa possibilità di conflitto, c'é il modo di ributtare la risposta
sulla porta in modo che sia catturata poi dall'altra socket (forse non è il
modo più corretto di dirlo, ma credo che si sia capito il concetto).


Se ho capito bene hai due thread, e ciascuno si occupa di uno dispositivo.

Punto primo, sarebbe tutto piu' semplice se un solo thread si occupasse
della rete, e smistasse le varie risposte su altri thread a seconda dell'origine.

Ammettendo nn sia veramente possibile, per avere una soluzione pulita
(ma sempre un po cowboy) potresti fare:

== Thread A, si occupa di IP0
socket(SO_REUSEADDR)
bind(*:4001)
connect(IP0:4001)

== Thread B, si occupa di IP0
socket(SO_REUSEADDR)
bind(*:4001)
connect(IP1:4001)

E Thread A dovrebbe ricevere i pacchetti UDP da IP0, e B da IP1.
Ovviamente il tutto va ripetuto per ciascuna delle 16 porte.


Reply to: