sonick | Salut,
je développe un client réseau en C, avec des sockets donc. J'essaye de régler le problème des déconnexions réseau (pouvoir me reconnecter automatiquement après une déconnexion).
J'ai procédé comme suit : - détection d'une erreur lors d'un send/recv
- boucle infinie tant que la socket n'arrive pas à se reconnecter
Voici concrètement le bout de code correspondant :
Code :
- int is_connected = 1;
- if(send(s, "19NEV", (int)strlen("19NEV" ), 0)<(int)strlen("19NEV" ))
- {
- #ifdef DEBUG
- printf("__cmd_19NEV__Connection to socket lost, trying to reconnect...\n" );
- #endif
- is_connected = 0;
- shutdown(s, SD_SEND); //closes socket
- closesocket(s); //free the socket
- while(!is_connected)
- {
- #ifdef DEBUG
- printf("__cmd_19NEV__Connection to socket failed. Trying again...\n" );
- printf("connect au serv = %i",connect(s, (SOCKADDR *)&server, sizeof(server)));
- #endif
- if (connect(s, (SOCKADDR *)&server, sizeof(server)) != SOCKET_ERROR)
- {
- printf("nb car env = %i",send(s, "19NEV", (int)strlen("19NEV" ), 0)==(int)strlen("19NEV" ));
- if(send(s, "19NEV", (int)strlen("19NEV" ), 0)==(int)strlen("19NEV" ))
- {
- is_connected = 1;
- }
- }
- Sleep(1000);
- }
- #ifdef DEBUG
- printf("__Connection successful\n" );
- #endif
- }
|
Mais ma socket n'arrive pas à se connecter (connect() renvoie toujours -1)
Vous voyez un problème ? |