begin process at 2012 05 29 01:57:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

comment distingué 2 clients dans un chat en mode tcp


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

comment distingué 2 clients dans un chat en mode tcp

vendredi 10 novembre 2006 à 19:07:07 | comment distingué 2 clients dans un chat en mode tcp

facilus

slt tt le monde,

jé fé un pti source pour dialogué entre 2 client et un serveur avec le langage c sous unix, sachant ke avec la fontion accept elle retourne toujour un nouveau id de socket voici le code de la partie serveur :

while(1)
{
 nsd = accept(sd,(struct sockaddr *)&son_adr,&ss);
// lorske le client envoi un 2eme message , je je ve pa faire un accept, pour ne pa perdre la trace, cmt la sauvegarder ?
  if (nsd ==-1)
      {
          perror("accept");
          exit(3);
      }
   read(nsd,buf,sizeof(buf));
   printf ("le serveur a reçu ce message : %s\n",buf);
  
   if(strcmp(buf,"quit")==0)
     { close (nsd); }
  }


et voici le code de la partie client :

while (1)
{
   printf("ecrire le message \n");
   scanf("%s",&msg);
   write(sd,msg,sizeof(msg));
  if(strcmp(msg,"quit")==0)
   {close(sd);}

}

ce ke je , et lorsque j'ai 3 client qui se connecte au serveur, comment faire pour les distingué(gardé la trace d'un client),  autrement lorsque le serveur recoit des message d'un client , il doit savoir lekel dé 3 la envoyer ?

merci a tous
vendredi 10 novembre 2006 à 19:45:01 | Re : comment distingué 2 clients dans un chat en mode tcp

Ombitious_Developper

Salut:

Pourquoi ne pas attruber des identifiant à ces clients en se basant sur leurs adresses IP.

La clef est l'adresse IP.
vendredi 10 novembre 2006 à 20:08:16 | Re : comment distingué 2 clients dans un chat en mode tcp

facilus

et comment leur attribué ?
vendredi 10 novembre 2006 à 20:26:22 | Re : comment distingué 2 clients dans un chat en mode tcp

Ombitious_Developper

Salut:

La fonction "getpeername ()" vous dira qui est de l'autre cote de la connection.

Prototype:
				
						
								#include <sys/socket.h> 
int getpeername(int sockfd,
struct sockaddr *addr,
int *addrlen);



Voilà un lien intéressant :
http://www.chez.com/vidalc/lf/socket.html
vendredi 10 novembre 2006 à 20:43:50 | Re : comment distingué 2 clients dans un chat en mode tcp

facilus

baraka allah fik (merci bc) est ce ke je pe l'utilisé dan le programme server ? et comment stp ?
c seulemnt pour savoir dan le serveur ; kel é le client ki a envoyé le message é faire un printf de ce genre :

printf("le client ? a envoyé le message %s \n", ? , msg);

vendredi 10 novembre 2006 à 20:57:47 | Re : comment distingué 2 clients dans un chat en mode tcp

Ombitious_Developper

Réponse acceptée !
Salut:

Normalement, ça devra travailler.

Voici un lien:
http://www.manualy.sk/sock-faq/unix-socket-faq-4.html
                         |
                         |
                         |
                         V
Voir le titre "
4.9 How do I get my server to find out the client's address / hostname? "
vendredi 10 novembre 2006 à 21:08:33 | Re : comment distingué 2 clients dans un chat en mode tcp

Ombitious_Developper

Salut:

Comment ça va?
samedi 11 novembre 2006 à 00:47:30 | Re : comment distingué 2 clients dans un chat en mode tcp

facilus

merci bc , jé resolu ce pb , un autre je n'arrive tj pa a le resoudre é k'avec le meme code lorsque par exemple un client envoi 2 message un a un ,
le 1er sera recu dan le serveur tandi ke le 2eme non , comment resoudre pour pouvoir envoyer une succesuin de messages ?
Merci bc
samedi 11 novembre 2006 à 12:30:52 | Re : comment distingué 2 clients dans un chat en mode tcp

Ombitious_Developper

Salut:

Pour ta 2eme question je pense que tu dois créer des threads (un processus fils) à l'aide de la primitive fork.
samedi 11 novembre 2006 à 13:18:28 | Re : comment distingué 2 clients dans un chat en mode tcp

facilus

merci , j'ai pensé a ça aussi, je me sui di on méttant dan le code du fils : la primitive "accept" , et dans le code du pere : la primitive "read" , est ce ke ca marche comme ça ?


Cette discussion est classée dans : message, serveur, client, accept, nsd


Répondre à ce message

Sujets en rapport avec ce message

Probleme Architecture client Serveur Multithread [ par kawito ] Bonjour,j'ai fais un client serveur TCP qui doit gerer n connexions(win32 c++) winsowk1.1.le serveur gere les connexions a travers un thread acceptqui Aide pour programmation de socket en C sous unix [ par badjess ] Salut a Tous,Je suis un novice en programmation en Socket en sous environnement Linux. Aussi, j'ai essayé de trouver des programmes client serveur sur Fonctions send et recv [ par bubbless ] Bonjour, Dans le cadre d'un projet, je réalise actuellement un système serveur / client, et je me trouve confronté à un probème : le serveur acc Client/serveur (probleme d'espace) [ par redwings ] Client/Serveur      J'ai mis au point l'executable du client et celui du serveur et cela marche tres bien : cad le message envoyé d'un poste client es socket client (php) vers serveur (c++) [ par suleyman ] bonjour, je suis debutant, je nai jamais programmer une socket et jaimerai avoir le code source ainsi que les commentaires dune socket client et serve Recevoir message avec mon serveur [ par Nixeus ] Bonjour amis codeur !Je code actuellement un serveur en MFC avec Visual Studio 6.Il fonctionne très bien, le serveur démarrer, il est en écoute, et un [C] SOCKET [ par sda2 ] bonjour,en fait j'ai un petit problème avec les sockets en mode TCP...je programme un serveur multiclient, dans lequel, chaque client aura un traiteme boucle infinie et file de message [ par kyfranBibax ] Bonjour,j'ai un petit problème avec des files de messages et une boucle infinie.J'ai crée 2 programmes (un serveur et un cllient) qui communiquent via Programme sur les sockets en c++ builder 6 [ par fahdmustapha ] salut, j'aimerai avoir le code source de deux programmes en c++ builder 6 (serveur et client). le client:contien trois composants TClientSocket, TButt Message en retard [ par andoid ] Bonjour J'ai un client/serveur qui s'échangent des données et lorsque genre un chat.. Mon problème est lorsque je veut envoyer deux messages de suite


Nos sponsors


Sondage...

Comparez les prix

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,452 sec (3)

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