Salut
Je vous explique en quelques mots mon client : il tente une connexion vers un serveur toutes les 30secondes. Une fois la connexion etablit il s'endort jusqu'à la fermeture du serveur et recommence à tenter une connexion.
Petite precision, le serveur et le client ne sont pas dans le meme reseau.
Voici le code principal :
Ca fonctionne bien, le seul problème est quand il y a une déconnexion de l'internet coté client, celui ci ne reprend plus ses tentatives de connexion au serveur une fois sa connexion internet retablit (en gros il tente de se connecter, je coupe ma livebox, je rebranche, il ne tente plus rien..).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 while(1) { int ret; char buffer[2048]; SOCKET sock; struct sockaddr_in addrServ; struct hostent *hote; /* création socket */ sock = socket(AF_INET, SOCK_STREAM,0); if ( sock == INVALID_SOCKET ) exit(3); /*Connection au serveur */ addrServ.sin_family = AF_INET; hote = gethostbyname(dns); addrServ.sin_addr.s_addr = *(unsigned int*)(hote->h_addr_list[0]); addrServ.sin_port = htons(port); while ( connect(sock,(struct sockaddr *) &addrServ,sizeof(addrServ)) == SOCKET_ERROR ){ sleep(30000); } /* serveur connecté ! on lui envoit un msg */ send(sock,msg,sizeof(msg),0); while ( recv(sock,buffer,sizeof(buffer),0) != SOCKET_ERROR ) { sleep(1); } close(sock); } /* liberation reseau */ #if defined (_WIN32) WSACleanup(); #endif
Voilà, j'espère que ce problème a une solution (je ne vois pas pourquoi il n'en aurait pas), mais j'ai pas reussit à la trouver
Merci pour votre aide
Sorry
Partager