Client serveur sockets

Client serveur sockets - C++ - Programmation

Marsh Posté le 07-05-2003 à 11:24:39    

Salut,
 
Sous Linux, en C.
J'ai un serveur et un client sur une même machine.
Le client se connecte au serveur (connect()) et lis en boucle ce que le serveur lui envoie (read()), puis la boucle stoppe s'il trouve un certain marqueur dans la trame qu'il reçoit.
 
Or si le serveur meurt pendant la boucle du client, alors le client attend indéfiniment...
 
Je voudrai savoir comment détecter que le serveur meurt pendant la boucle du client, afin de killer le client.
 
Merci !


---------------
Savoir c'est vivre, et maintenir dans l'ignorance c'est presque un homicide
Reply

Marsh Posté le 07-05-2003 à 11:24:39   

Reply

Marsh Posté le 07-05-2003 à 11:29:54    

cypress a écrit :

Salut,
 
Sous Linux, en C.
J'ai un serveur et un client sur une même machine.
Le client se connecte au serveur (connect()) et lis en boucle ce que le serveur lui envoie (read()), puis la boucle stoppe s'il trouve un certain marqueur dans la trame qu'il reçoit.
 
Or si le serveur meurt pendant la boucle du client, alors le client attend indéfiniment...
 
Je voudrai savoir comment détecter que le serveur meurt pendant la boucle du client, afin de killer le client.
 
Merci !


 
recv devrait te renvoyer socket_error (-1).
faut lire les man au moins un minimum.

Reply

Marsh Posté le 07-05-2003 à 11:30:15    

ecoute j'en sais rien mais je me demande si y'a pas eu des topics similaire ses derniers tps....donc une petyte recherche s'impose

Reply

Marsh Posté le 07-05-2003 à 11:33:45    

Zen soyons Zen  :jap:  
 
Merci qd même


---------------
Savoir c'est vivre, et maintenir dans l'ignorance c'est presque un homicide
Reply

Marsh Posté le 07-05-2003 à 21:11:35    

Konar a écrit :


 
recv devrait te renvoyer socket_error (-1).
faut lire les man au moins un minimum.


tu met un time-out sa semble logique non  :??:  
(tu peux creer un thread père qui gère le time-out)

Reply

Marsh Posté le 07-05-2003 à 21:35:15    

artemice a écrit :


tu met un time-out sa semble logique non  :??:  
(tu peux creer un thread père qui gère le time-out)


 
allez, pour la 200ème fois dite sur ce forum : toujours faire un select(), select() prenant un timeout et permettant entre autres de savoir si une socket est vivante, ou s'il y a des données a recevoir (et donc de faire un recv).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed