begin process at 2012 05 30 17:22:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

socket et décrémentation client serveur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

socket et décrémentation client serveur

lundi 2 novembre 2009 à 14:38:55 | socket et décrémentation client serveur

ichigoZ710

Bonjour,
j'aurais aimé savoir comment résoudre un problème sur lequel je planche depuis un petit moment déjà.
En gros j'ai un serveur sur lequel des clients se connectent. Arrivé à un nombre prévu de clients (ex : 2) le serveur doit empecher le client de se connecter. (or chez moi il veut pas...)
En plus, lorsque qu'un client se déconnecte la variable num_connect doit se décrémenter pour permettre si un autre client se connecte de l'accepter sinon il est sensé etre refusé (ici se n'est pas encore le cas, le serveur acceptant tous les clients meme si le nombre est dépassé)

Le problème est que je ne sais pas comment faire gérer la décrémentation de la variable. Je suppose que je dois utiliser le fait d'avoir un signal SIGCHLD dans le père et à la reception de ce signal décrémenter ma variable.

On m'a dit dans mon cours d'utiliser la structure sigaction mais je ne vois pas du tout comment m'en servir dans ce cas précis.

Code C/C++ :
void sigact_sigchld(int sig, siginfo_t *info, void *ignore) {
  printf("resultat : %d\n", waitpid(info->si_pid, NULL, 0));
  nb_connect--;
  printf("Nombre de clients restants maintenant : %d\n", nb_connect);
}


Bon je pense avoir tout expliquer de mon problème. Mais je ne pense pas etre très clair. Donc si quelqu'un se penche dessus, je répondrais à ces questions avec grand plaisir.

Merci.
lundi 2 novembre 2009 à 14:40:31 | Re : socket et décrémentation client serveur

ichigoZ710

Désolé, j'ai oublié de préciser que la fonction que j'ai présenté ici sert comme suit :

Code C/C++ :
act.sa_handler = NULL;
	act.sa_sigaction = sigact_sigchld;
	act.sa_mask = set;
	act.sa_flags = SA_SIGINFO;
	if(sigaction(SIGCHLD, &act, NULL)) perror("Erreur lors de l'appel de sigaction\n");


Cette discussion est classée dans : problème, serveur, client, clients, décrémentation


Répondre à ce message

Sujets en rapport avec ce message

client / serveur [ par tangocharli ] Je développe une architecture client / serveur. A un moment donné, la socket du serveur doit se fermer au bout d'un certain temps pour que les clients programmation socket sous linux [ par blazman34 ] Bonjour à tous !!Voici mon probleme :Je suis en train de programmer une application client serveur sous linux, tout a bien marcher juska présent juska problème de gestion de plusieurs clients [ par joeblack59 ] j'ai téléchargé un programme sur ce site qui permet d'envoyer des messages entre un client et un serveur sous Windows.Ce programme est celui à la page Thread, Client/Serveur VC++.Net et avec WinForms ( pas d'MFC ) [ par lacousine ] Bonjour,j'ai développé un serveur qui accept plusieurs clients avec des sockets. Voici mes problèmes: lorsque je veux mettre fin à mon serveur et qu'i Communication Client/Serveur ! Ou es le problème ? [ par QuakeCoder ] Je recentre fréquemment un problème avec l’utilisation de socket et la communication entre Client/Server.   Prenant un exemple de ma dernière appl Problème de sockets... [ par nightlord666 ] Bonjour ! J'essaie en ce moment de programmer un serveur multithread qui servira(peut-être) à un projet de MMORPG. Le serveur fonctionne normalement, problème serveur client en C [ par lenneth666 ] voilà j'ai fais un serveur et un client. Alors pour envoyer un message du serveur vers le client il n'y a aucun problème par contre l'inverse ne march problème serveur TCP en C [ par lenneth666 ] Bonjour j'ai essayé de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(struct Connection Refused [ par JoebarGlut ] Salut, Voici mon probleme (j'utilise la socket api windows avec WSAAsyncSelect) : Lorsque j'ai un serveur (dedie) qui accepte sur le port1, alors Problème WinSock... [ par Vermifuge ] Bonjour tout le monde, j'ai une réaction étrange de WinSock, et comme je trouve pas j'ai pensé que quelqu'un avait déjà eu ce problème ( c'est la prem


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,576 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales