Salve a tutti.

Descrivo il mio problema:

ho 3 sorgenti (ip 192.168.1.1 ,.2 e .3) che inviano dati (protoccolo UDP) a un pc (192.168.1.4) tutti su porta 8900. Su tale pc girano (sotto shell CYGWIN) 3 processi (uno per sorgente) che si occupano dell'acquisizione di tali dati. Ognuno dei tali processi realizza, per la ricezione, un bind sulla porta (la 8900 citata). Chiaramente l'avvio del secondo processo va in errore in quanto la porta č stata bindata giā dal primo.
No potendo modificare il sw/fw nč della parte relativa alle sorgenti dati nč quella dei processi di acquisizione ho realizzato sul pc di destinazione una sorta di "gestore del traffico" in c# che si mette in ascolto sulla porta 8900 e ridireziona (in localhost) sulle tre porte 8910,8920 e 8930 il traffico differenziandolo per IP sorgente (apre quindi 3 socket differenti verso i tre processi).
Lanciando adesso i 3 processi il bind da loro effettuati non danno errore.

Prima domanda: c'č un modo (attraverso netsh o simili) per far quello che ho realizzato in c# (domanda forse poco inerente a questa sezione)

Seconda domanda: quanto realizzato funziona. Qualora uno dei processi di acquisizione non riceva un dato (lo verifica attraverso dei controlli interni) effettua una richiesta di ritrasmissione allo IP che glielo ha inviato sulla sua porta di trasmissione. A tal punto non riesco a mettere in ascolto il mio gestore del traffico per acquisire tale richiesta di ritrasmissione.

Se volete posto il codice del gestore di traffico.

Grazie in anticipo.