Chat client-serveur

Piven Messages postés 90 Statut Membre -  
Piven Messages postés 90 Statut Membre -
Bonjour,
Je suis donné pour mission pour mission de faire un simple chat entre un client et un serveur; le chat doit prendre fin lorsque que le client émet un "exit". Seulement voila, quand je fait la vérification de la variable "message"... elle est TOUJOURS Différente de "exit" J'ai fait quelques tests et j'en devient fou... J'implore votre aide =/

Le CODE:

-----------------------------------------------------Serveur-------------------------------------------------------------------------------

#include<sys/socket.h>

#include<stdio.h>

#include<string.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <errno.h>

#include <netdb.h>

int nom_client(int sock)

{

struct sockaddr_in client;

struct hostent* clt;

int lg=sizeof(client);

if(getpeername(sock,(struct sockaddr*)&client,&lg)<0)

return (-1);

lg=sizeof(client.sin_addr);

if((clt=gethostbyaddr((char*)&client.sin_addr,lg,AF_INET))==NULL)

return (-1);

printf("Le Client %s sur l'adresse %d est sur le socket n°%d\n",clt->h_name,inet_ntoa(client.sin_addr),ntohs(client.sin_port));

}

main()

{

char message[1024];

int sock,sock_clt,i;

struct sockaddr_in addr_serv;

sock = socket(AF_INET,SOCK_STREAM,0);

if (sock<0)

{

perror("Echec de création du socket \n");

return(-1);

}

addr_serv.sin_addr.s_addr=INADDR_ANY;

addr_serv.sin_port = htons(8000);

addr_serv.sin_family = AF_INET;

if(bind(sock,(struct sockaddr *)&addr_serv,sizeof(addr_serv))<0)

{

perror("Erreur d'association");

return(-1);

}

listen(sock,5);

sock_clt=accept(sock,(struct sockaddr *) 0, (int*)0);

if (sock_clt==-1)

{

perror("ERREUR ACCEPT ");

return(-1);

}

else

{

perror("Bravo: connexion établie.");

nom_client(sock_clt);

}
while(1){
if(read(sock_clt,message,1024)==-1)

perror("Problème de lecture de la socket.\n");

else

{

fprintf(stderr,"%s ",message);
if (message!="exit")
printf("%s \n",message);
fgets(message,1024,stdin);

if (write(sock_clt,message,strlen(message))==-1)

{

perror("il y a un probleme dans l'envoi du message\n");

return(-1);

}
memset(message,0,sizeof message);

}

}

close(sock_clt);

close(sock);

}

--------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------client-------------------------------------------------------------------------------------

#include<sys/socket.h>
#include<stdio.h>
#include<string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <errno.h>
#include <netdb.h>

main()
{
int sock,i;
char message[1024], Serveur[20];
struct sockaddr_in adresse;
struct hostent *adresse_ip;
u_short port;

sock=socket(AF_INET,SOCK_STREAM,0);
if (sock < 0)
{
perror("Erreur d'ouverture");
return(-1);
}
scanf("%s",Serveur);
fprintf(stderr,"Nom Serveur :%s",Serveur);
adresse_ip=gethostbyname(Serveur);
if (adresse_ip==NULL)
{
perror("Problème avec l'adresse ip");
return(-1);
}
memcpy((char*)&adresse.sin_addr,(char*)adresse_ip->h_addr,adresse_ip->h_length);
adresse.sin_family=AF_INET;
adresse.sin_port=htons((u_short) 8000);
if (connect(sock, (struct sockaddr *)&adresse,sizeof(adresse))==-1)
{
perror("Problème de connexion");
return(-1);
}
for(;;)
{
fgets(message,1024,stdin);
if(write(sock,message,strlen(message)+1)==-1)
{
perror("Erreur d'emission ou d'écriture dans la socket");
return(-1);
}
if (message!="exit")
printf("%s\n",message);
memset(message,0,sizeof message);
if (read(sock,message,1024)==-1)
{
perror("Erreur de lecture");
return(-1);
}
else
fprintf(stderr,"%s", message);
}
close(sock);
}

--------------------------------------------------------------------------------------------------------------------------------------------------------------
A voir également:

5 réponses

Zuka93 Messages postés 4 Statut Membre 4
 
Salut tu essayes surment de faire un jeu comme http://calvania.jexiste.fr ??
car ancienement ce tchat était vraiment super connu sous le lien http://www.calvania.org

Buzz12 et Hecate sont les fondateurs de ce beau tchat qui se télécharge, en ce moment ils sont entrain de tout refaire sur le lien http://calvania.jexiste.fr
0
Piven Messages postés 90 Statut Membre 3
 
Non non le mien s'execute sur Console de 2 machines différentes sur le même réseau. Rien de plus ...
0
Piven Messages postés 90 Statut Membre 3
 
if (message!="exit")
printf("%s\n",message);
C'était pour bien vérifier que quand je tape exit... Y'a bien exit dans message....
0
Piven Messages postés 90 Statut Membre 3
 
Need help -_-'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Piven Messages postés 90 Statut Membre 3
 
Up....
0