réanimer un serveur :o)

réanimer un serveur :o) - C - Programmation

Marsh Posté le 13-12-2003 à 23:10:28    

bonjour !
voilà je vous explique, je fais en ce moment une application de CHAT; avec un serveur (serveur.c) et des clients (client.c) ki se connectent à ce serveur
chaque message envoyé par client1 au serveur et affiché chez client2..n
bon une application de CHAT classique quoi...
 
le client a qq attributs: qui sont déclarés (dans serveur.c) :
typedef struct _clients
{
  int uid;
  char *nom;
  int  accept;
  int nouveaux;
  int partants;
  int bannis[NBRE_CLIENT_MAX];
}_clients;
struct _clients clients[NBRE_CLIENT_MAX];
 
 
Bon je voudrais traiter un cas bien précis:
le cas de la disparition du serveur, un bug et hop le serveur se coupe par ex, ou simplement une deconnexion.... Existe-t-il une solution de remise en route du serveur sans intervention 'humaine' ?
 
c'est a dire que le serveur se relance 'tout seul', grâce a un ptit bout de code qui va bien
je voudrais bien sûr que les divers attributs des clients soient conservés, et ke leur reconnexion au serveur soit tentée disons chaque 10s .
 
vous avez qq idées en vrac à me donner svp ?
 
merci !

Reply

Marsh Posté le 13-12-2003 à 23:10:28   

Reply

Marsh Posté le 13-12-2003 à 23:31:11    

avant de supposer sur les erreurs des autres, fait gaffe à ton code, n'est-ce pas ? y a rien à relancer, c'est jsute toi : si la connexion a un problème, le serveur doit être capable de se réinitialiser et les clients capables de renégocier leur connexion

Reply

Marsh Posté le 14-12-2003 à 09:53:50    

"si la connexion a un problème, le serveur doit être capable de se réinitialiser et les clients capables de renégocier leur connexion"
heu oui c'est ce ke je voudrais faire, on est d'accord c'est moi ki doit gérer ça dans mon code, et j'demande comment je pourrais m'y prendre
kel genre de manips faut-il ke j'utilise ?
des sigint, des fork, des .. ?


Message édité par souljah le 14-12-2003 à 11:37:07
Reply

Marsh Posté le 14-12-2003 à 15:17:29    

déjà gère les erreurs, si tes programmes de se rendre compte que y a quelque chose qui va pas, ça sera déjà très bien. après, ben suffit de redémarrer

Reply

Marsh Posté le 14-12-2003 à 22:25:01    

ben en fait ce ke j'ai déjà géré dans le code:
- quand un client meurt prématurément, le serveur le détecte
- le serveur meurt (disons avec un ctrl c), tout les clients sont avertis ke le serveur va fermer, les circuits virtuels sont fermés, et ensuite le serveur se ferme
 
que pense tu du fork ? ça peut fonctionner pour ce ke je veux faire ?

Reply

Sujets relatifs:

Leave a Replay

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