begin process at 2012 05 29 13:33:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

PLEASE REPONDEZ MOI ! ! !


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

PLEASE REPONDEZ MOI ! ! !

mercredi 26 mars 2003 à 17:59:47 | PLEASE REPONDEZ MOI ! ! !

marelo87

bonjour,

voila je suis en train de programmer ma premiere appli reseau (tte simple)....

mais pour me compliquer un peu la tache je voulais faire en sorte que mon serveur puisse gerer plusieurs clients....

et la mes pb commence.....j ai a peu pres compris select() qui me parait indispensable.... mais voila j i fai mon serveur a partir d un autre code source (qui marche ca j en suis sur, et d ailleurs qui n est pas d emoi sinon je serais pas ici) et j ai un peu de mal a tout comprendre avec cette satané fonction...... donc voila je sais que ca va etre assez brutale mais je vais mettre une partie de mes sources en esperant qu une ame bienveillante puisse m aider....



/* Inite des listes de sockets */
nfds = 10;
FD_ZERO(&afds);
FD_SET(serv_sock, &afds);

/* Gestion des clients */
while(1)
{
/* Copie des listes de sockets */
memcpy(&rfds, &afds, sizeof(rfds));

/* Surveillance des descripteurs en lecture */
if(select(nfds, &rfds, 0, 0, 0) == -1)
{
/* Signaux non-bloquants */
if(errno == EINTR) continue;

fprintf(stderr, "select: %s", strerror(errno));
exit(1);
}

if(FD_ISSET(serv_sock, &rfds))
{
taille = sizeof(sonadr);
if((client_sock = accept(serv_sock, (struct sockadr *)&sonadr, &taille)) == -1)
{
fprintf(stderr, "accept: connexion impossible\n");
exit(1);
}

printf("Connexion d'un client depuis %s \n", inet_ntoa(sonadr.sin_addr));
fflush(stdout);
/*write(client_sock, BIENVENUE, strlen(BIENVENUE)+1);*/
/* Ajout du client dans la socket à surveiller */
FD_SET(client_sock, &afds);

/* Souhaiter la bienvenue au client */
send(client_sock, BIENVENUE, strlen(BIENVENUE)+1, 0);
} /*fin du if FD_ISSET */

/* Tester si les sockets clientes ont bougées */
for(fd = 0; fd<nfds; fd++)
{
if(fd != serv_sock && FD_ISSET(fd, &rfds))
{
/* Traiter le client */
if((message = lire_client(fd)) == NULL)
{
close(fd);
FD_CLR(fd, &afds);
fprintf(stderr, "-- Perte d'un client --\n");
}
else
{
/* Envoyer le message à tous les clients */
for(c = 0; c < nfds; c++)
{
if(c != serv_sock && FD_ISSET(c, &afds))
write(c, message, strlen(message)+1);
}
}
}/* fin du if */
}/* fin du for */
}/* fin du while infini */
}


Cette discussion est classée dans : client, sock, serv, fd, afds


Répondre à ce message

Sujets en rapport avec ce message

PROBLEME CLIENT SERVER [ par zzzzzz ] Mon client marche c sur et il envoie bien abcd mais monserver marche po je suis debutant en server socket... :(je sais pas comment faire en sorte que Probleme de Client Serveur [ par Krox68 ] voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS PING sous protocole TCP [ par ivdz ] Bonjour, J'ai besoin de votre aide. Je travaille sous C++ Builder 6. Je dois envoyer un message ICMP de Type Echo Request puis récupérer le message client serveur [ par elanspeech ] Bonjour,Je suis en train de programmer un petit client serveur en C pour windows avec dev-c++. J'obtiens l'erreur suivante a la compilation : D:\DEV-C communication client/serv SECURISEE [ par neoTHGLF ] Bonjour, j'aimerais savoir comment je peux creer une application client/serveur en utilisant par exemple le protocole ssl.si vous voulez un exemple, m arreter un select bloquand depuis un autre thread [ par cosmobob ] salut,sous windows, j'ai pas de probleme, mais sous linux, quel est le moyen pour qu'un thread qui bloque sur un select bloquant se débloque? shutdown Un peu d'aide pour un serveur [ par NAVIE ] Bonjour, voilà mon souci: a l'aide de mon compilateur Dev-C++ Version 4.9.8.10 j'ai crée un socket qui sert de serveur. Cependant même si la compilati FD_READ [ par argali ] Bonjour,J'ai un probleme avec FD_READ qui n'est pas appele lorsque mon client envoie un message au serveur, FD_WRITE marche par contre et le serveur p probléme d'allocation mémoire ? [ par templeofboom ] dans le cadre du développement d'une application de socket sous devcpp je me retrouve bizarrement coincé a cause d'une erreur d'allocation mémoire à Besoin d'aide sur les Thread Pour Bot MirC [ par nem02004 ] Bon voila g fai un bot mirc et en fai jaimerai lammener en 3 fois car ca va etre un bot dannimanimation ki sera en 3 pseudo ( ki parleron ensemble tot


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,406 sec (3)

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