Verification avant envoi send() - C - Programmation
Marsh Posté le 30-06-2006 à 11:19:08
faire en sorte que le serveur ne tombe pas ... je vois pas comment send ne peut pas échouer si y a personne au bout du fil ...
Marsh Posté le 30-06-2006 à 11:22:24
le serveur est un serveur MySQL, je ne pas le controler. Je ne cherche pas à ne pas faire échouer le send, mais à mieux gérer mon send afin que lorsque le serveur tombe, mon client ne crach pas aussi.
Marsh Posté le 30-06-2006 à 11:37:19
mon probléme est le suivant :
Pourquoi ce code :
Code :
|
Code :
|
ne marche pas ?
les fonctions retournent toujours -1.
Marsh Posté le 30-06-2006 à 11:46:26
ReplyMarsh Posté le 30-06-2006 à 14:12:53
Taz a écrit : et le retour de select ? |
Voilà d'abord la fonction :
Code :
|
La fonction fonctionne normalement quand le serveur marche.
Voilà le résultat de mon programme qui utilise cette fonction en boucle:
=> Le serveur fonctionne
Nouvelle Iteration
retour requeteMySQL = 0
=> Le serveur ne fonctionne plus
Nouvelle Iteration
avant send
sendPaquet lg=26 send=26
retour=26; longueurPaquet=26
recvPaquet lg=5 recv=0
Erreur 1 lors de la reception du message 'Tabular Response'.
retour requeteMySQL = -1
Nouvelle Iteration
avant send
=> crach
Comme on le voit, la fonction en détecte pas que le serveur est mort. C'est le retour de la fonction recv qui fait retourner un code d'erreur faux.
Lors d'une nouvelle itération, mystérieusement le programme crach.
Le retour du select est donc malheureusement toujours différent de -1 et 0
Marsh Posté le 30-06-2006 à 17:47:35
recv te fait un 0 parce que la connexion a été fermée. EOF. utilise perror si tu veux savoir le vrai problème pour ton send.
mais moi je n'en vois aucun.
Marsh Posté le 30-06-2006 à 09:53:56
Bonjour,
Je réalise un programme client/serveur. Le serveur peut ne plus marcher à tous moments, sans que le client ne la sache.
Lorque je réalise un send() dans le client, celui-ci plante lorsque le serveur tombe. Comment empécher celà ?
Merci d'avance.
Message édité par zapan25 le 30-06-2006 à 09:55:12