PDA

View Full Version : [C/C++] Socket client, bind e piu' di una scheda di rete


mr_hyde
07-06-2006, 15:14
Ciao a tutti!

Ho un piccolo problema con un'applicazione socket (client socket) che, in generale, funziona su macchine che potenzialmente hanno piu' di una scheda di rete e quindi piu' di un indirizzo IP.

Consultando documentazione varia in Internet ho letto che, qualora la macchia su cui gira il client socket abbia piu' di un indirizzo di rete, l'indirizzo usato e' stabilito dal sistema operativo (immagino in base a regole di routing e, in generale, configurazione di rete).

Il mio problema e' proprio questo: ho un'applicazione che implementa un client socket che quasi sicuramente dovra' girare su macchine con piu' di un indirizzo di rete; questa applicazione instaura una connessione via socket con un server (che gira su un'altra macchina) e, per motivi che non sto qui a spiegare, ha la necessita' di sapere quale e' l'indirizzo di rete locale utilizzato per il socket.

Qualcuno ha qualche idea su come ricavare l'indirizzo IP locale a partire da un socket esistente?

Ciao e grazie in anticipo,
Mr Hyde

mr_hyde
07-06-2006, 15:33
uhm... ci ho pensato un pochino e forse con la getsockname qualcosa mi riesce... Faccio qualche test e poi faccio sapere...

Ciao,
Mr Hyde

mr_hyde
07-06-2006, 16:06
OK, confermo che la getsockname restituisce l'indirizzo realmente usato.

Ciao,
Mr Hyde