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

Re: [OT] Socket BSD su TCP in C



Il giorno gio, 10-03-2005 alle 17:22 +0100, Lucio Crusca ha scritto:
> Sarà perché il networking l'ho imparato prima in Java, ma mi aspetto che una
> cosa del genere sia possibile senza mettersi a fare cicli tentando la
> fortuna...

Sarà che forse è meglio imparare il networking su libri seri, tipo "Unix
Network Programming" di Stevens che ti consiglio vivamente.. :)

La soluzione è la funzione getsockname(). E.g.:

struct sockaddr_in name;
socklen_t len = sizeof(name);

/* il tuo codice qui */

getsockname(sock, (struct sockaddr*)&name, &len);
printf("Ascolto sulla porta %d\n", (int)ntohs(name.sin_port));

e tutto funziona come ti aspetti.

federico

-- 
Federico Di Gregorio                         http://people.initd.org/fog
Debian GNU/Linux Developer                                fog@debian.org
INIT.D Developer                                           fog@initd.org
  Those who do not study Lisp are doomed to reimplement it. Poorly.
                                     -- from Karl M. Hegbloom .signature

Attachment: signature.asc
Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata


Reply to: