PDA

View Full Version : [C] Errore della bind()


durbans
30-07-2006, 18:48
Ho scritto un semplice server in C.
La prima esecuzione funziona (il client gli manda un messaggio e il server risponde), la seconda esecuzione fallisce sulla bind() (in pratica il server fa un ciclo infinito dove, alla fine della interazione con il client, chiude il socket e torna in ascolto su una porta).

Mi pare di ricordare che bisognava impostare un'opzione del socket in maniera tale da poter riusare la stessa porta senza dover aspettare un timeout del TCP con la setsockopt(), ma non mi ricordo quale era questa opzione.

Andlea
30-07-2006, 20:59
SO_REUSEADDR

cionci
31-07-2006, 20:24
Che senso ha fare due volte la bind ?!?!? Non c'è bisogno...basta fare la accept per tornare in attesa di una nuova connessione...

Andlea
31-07-2006, 21:27
credo si riferisca ad una seconda esecuzione di tutta l'applicazione.
Capita che la porta non venga rilasciata immediatamente

cionci
31-07-2006, 22:32
Dalla descrizione sopra mi sembrava che facesse due bind nella stessa esecuzione...