Demande d'aide

erb211 Messages postés 8 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 janvier 2007 - 13 déc. 2006 à 12:35
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 - 17 déc. 2006 à 21:00
je veut que quelqu'un me corrige ce programme de chat (client/serveur):
==============
server.c
==============
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <strings.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>


void main()
{


 SOCKET server;
 SOCKET sock;


 SOCKADDR_IN sinserv; 
 SOCKADDR_IN sin;  


 int port;


 printf("Port : ");
 scanf("%i",&port);


 sinserv.sin_family=AF_INET; 
 sinserv.sin_addr.s_addr=INADDR_ANY;
 sinserv.sin_port=htons(port);


 
 if(server=socket(AF_INET,SOCK_STREAM,0)) == -1)//creation de la socket(domaine de communic,mode de communic,protocole)
     {
        perror(" socket");
        exit(1);
     }


    if(bind(server,(SOCKADDR*)&sinserv,sizeof(sinserv)) == -1)//initialisation de la socket
     {
        perror("bind");
        exit(1);
     }


 
    if(listen(server,5) == -1)
     {
        perror("listen");
        exit(1);
     }


 char buffer[N];
 int sinsize;
 int err=0;


 while(1)
 {
  sinsize=sizeof(sin);
    if((sock=accept(server,(SOCKADDR*)&sin,&sinsize)) == -1)
          {
             perror("accept");
             exit(1);
          }
 
 else
  {
   while(err>-1)
   {
    memset(buffer,0,sizeof(buffer));
    cin.getline((char*)buffer, N);
    err=send(sock,buffer,sizeof(buffer),0);


    memset(buffer,0,sizeof(buffer));
    recv(sock,buffer,sizeof(buffer),0);
    printf("%s\n",buffer);
   }
  }
 }


}
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
==============
client.c
==============
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <strings.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>


#define N 1000


void main()
{


 SOCKET sock; 
 SOCKADDR_IN sin;


 printf("Ip : ");//demande de l'adresse IP du serveur
    char ip[15]; 
 scanf("%s",ip); 


 printf("%s","\nPort : ");//demande de numéro de port
    int port; 
 scanf("%i",&port);


 sin.sin_family=AF_INET;
    sin.sin_addr.s_addr=inet_addr(ip);
 sin.sin_port=htons(port);
 


 if((sock=socket(AF_INET,SOCK_STREAM,0)) == -1)//creation de la socket(domaine de communic,mode de communic,protocole)
     {
        perror("socket");
        exit(1);
     }




  if(bind(sock,(SOCKADDR*)&sin,sizeof(sin))) == -1)//initialisation de la socket
     {
        perror("bind");
        exit(1);
     }


  


 if(connect(sock,(SOCKADDR*)&sin,sizeof(sin)))//etalissement de la connexion
 {
  printf("La connection a echoue\n");


  system("PAUSE");
  exit(0);
 }


 char buffer[N];
 memset(buffer,0,sizeof(buffer));


 int err=0;


 while(err>-1)
 {
  cin.getline((char*)buffer, N);
  err=send(sock,buffer,sizeof(buffer),0);
  memset(buffer,0,sizeof(buffer));


  err=recv(sock,buffer,sizeof(buffer),0);
  printf("%s\n",buffer);
  memset(buffer,0,sizeof(buffer));
 }


 printf("Connection terminée\n\n");


 


 system("PAUSE");
}

6 réponses

turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
13 déc. 2006 à 15:22
Une telle demande ne saurait se refuser !

<hr size="2" width="100%" />TuRn3r
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
13 déc. 2006 à 15:52
Salut,

Ah ben si si, au contraire, çà peut se refuser ... Parce qu'au niveau informations, tu n'as pas donné grand chose !
Qu'est ce qui ne fonctionne pas dans ton code ?

"je veut que quelqu'un me corrige" => Niveau politesse, c'est extrêmement maladroit.







Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
13 déc. 2006 à 16:23
Pourquoi du C partout et d'un coup du c++ ???
cin.getline((char*)buffer, N);
0
cs_kanza Messages postés 3 Date d'inscription lundi 2 janvier 2006 Statut Membre Dernière intervention 17 décembre 2006
17 déc. 2006 à 17:03
tu doit préciser ou se situe les erreurs!!
0

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

Posez votre question
erb211 Messages postés 8 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 janvier 2007
17 déc. 2006 à 18:57
merci j'ai regler le probleme
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
17 déc. 2006 à 21:00
Alors ca au moins c'est un post constructif
0
Rejoignez-nous