[Socket] timout sur connect()
Bonjour,
Je souhaiterais pouvoir ajouter un timout sur le connect de ma socket. J'ai déjà un timout effectif pour l'envoie mais malgré plusieurs essaie et des recherches sur internet impossible de trouver une solution.
Voici le bout de code de la fonction que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| SOCKET sock; //Cr�ation de la socket
SOCKADDR_IN sin;
int size = 10;
char *buffer;
buffer = (char*) malloc(sizeof(char*) * size);
memset(buffer, 0, size);
fd_set readfs;
struct timeval tv;
sin.sin_addr.s_addr = inet_addr(ip);
sin.sin_family = AF_INET;
sin.sin_port = htons(502);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR)
return "-1";
int ret = 0;
FD_ZERO(&readfs);
FD_SET(sock, &readfs);
tv.tv_sec = 5;
tv.tv_usec = 0;
buffer[0] = 0x00; //Transaction ID
buffer[1] = 0x01; //Transactio6n ID
buffer[2] = 0x00; //Protocole ID
buffer[3] = 0x00; //Protocole ID
buffer[4] = 0x00; //Length
buffer[5] = 0x04; //Length
buffer[6] = numEsclave; //Num�ro d'esclave
buffer[7] = 0x11; //Num�ro de la fonction
//Envoie de la socket
int a = send(sock, //La socket � envoyer
buffer, //La requete � envoyer
size, //La taille de la requete
0);
if(a < 0)
return "-1"; |
Le but serais donc de gérer un timeout d'environ 5 secondes sur la fonction connect se trouvant ligne 17 et qu'en cas de timeout cela retourne -1.
Est-ce que quelqu'un pourrait me donner une piste pour gérer un timeout sur une fonction connect ?
Je vous remercie d'avance :zoubi: