Teo@Unix
12-12-2009, 15:10
Ciao,
ho un problemino con la chiamata setsockopt() per impostare l'opzione SO_REUSEADDR, scopo di questa č evitare che il mio server non possa effettuare la bind() successiva nel caso un altro processo stia usando lo stesso indirizzo locale...
innanzi tutto il codice:
struct sockaddr_in Addr;
int Mysocket, flag_ok = 1;
if(Mysocket = socket(AF_INET,SOCK_STREAM,0) == -1)
{
fprintf(stderr, "Listen_toLocalPort: socket() failed.\n");
exit(1);
}
if(setsockopt(Mysocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag_ok,sizeof(flag_ok)) < 0)
{
fprintf(stderr, "Listen_toLocalPort: setsockopt() failed.\n");
GoToSetsockoptError();
close(Mysocket);
exit(1);
}
l'uso che faccio mi sembra corretto, errno non assume nessun valore interpetabile...
putroppo impostare quella opzione č piuttosto importante. Sapete darmi un consiglio? Grazie.
ho un problemino con la chiamata setsockopt() per impostare l'opzione SO_REUSEADDR, scopo di questa č evitare che il mio server non possa effettuare la bind() successiva nel caso un altro processo stia usando lo stesso indirizzo locale...
innanzi tutto il codice:
struct sockaddr_in Addr;
int Mysocket, flag_ok = 1;
if(Mysocket = socket(AF_INET,SOCK_STREAM,0) == -1)
{
fprintf(stderr, "Listen_toLocalPort: socket() failed.\n");
exit(1);
}
if(setsockopt(Mysocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag_ok,sizeof(flag_ok)) < 0)
{
fprintf(stderr, "Listen_toLocalPort: setsockopt() failed.\n");
GoToSetsockoptError();
close(Mysocket);
exit(1);
}
l'uso che faccio mi sembra corretto, errno non assume nessun valore interpetabile...
putroppo impostare quella opzione č piuttosto importante. Sapete darmi un consiglio? Grazie.