|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2006
Città: Ilê-de-France
Messaggi: 319
|
[C/C++] settare socket timeout sulla connect()
Salve gente, ho un problemino, dovrei settare un timeout umano (Linux mi sembra dia timeout dopo 72 secondi) dopo una connect(), così se l'host è down non ho bisogno di attendere tutto quel tempo, so che dovrei settare il socket come non bloccante e poi usare la select, ma non ho ben chiaro come fare, vi posto la parte di codice interessata
Codice:
int sock; struct sockaddr_in sock_in; sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); fcntl(sock, F_SETFL, 0); //questa dovrebbe diventare fcntl(sock,F_SETFL, O_NONBLOCK); sock_in.sin_family=AF_INET; sock_in.sin_port=htons(conf->getPort()); sock_in.sin_addr.s_addr=inet_addr(conf->getServer().c_str()); conf->setSin(sock_in); conf->setSockfd(sock); if(conf->debug==true) cout<<"Connecting to server "<<conf->getServer()<<":"<<conf->getPort()<<endl; //qui dovrei poi controllare se ritorna qualcosa di diverso da EINPROGESS giusto? if(connect(sock,(struct sockaddr*)(&sock_in),sizeof(struct sockaddr_in))<0){ perror("Connessione Socket Fallita"); return false; } //qua dovrebbe andare tutto il controllo della select
__________________
There is no cloud, it's just someone else computer |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:18.