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");
}
Afficher la suite