Bonjour tous le monde, j'ai un probleme avec un programme en reseaux client/serveur :
lorsque j'envoie un message au client il se decoupe en plusieurs partie correspondants aux espaces. Merci de me repondre.
Serveur :
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <winsock.h>
#define MYPORT 3490 /* Le port o? les utilisateurs se connecteront */
#define BACKLOG 10 /* Nombre maxi de connections accept?es en file */
int main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
char buffer[1024];
char message[1024];
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
int sinsize = sizeof(csin);
if((csock = accept(sock,(SOCKADDR *)&csin,&sinsize)) != INVALID_SOCKET)
{
send(csock,"Vous etes connectes\r\n127.0.0.1 sur le port 50\r\n\r\n",50,0);
printf("\nIl y a un client\n");
while(true)
{
printf("Serveur: ");
scanf("%s", &message);
send(csock,message,50,0);
}
}
closesocket(sock);
WSACleanup();
}
Client :
//CLIENT
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <winsock.h>
int main()
{
char buffer[1024];
char msg[1024];
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sock = socket(AF_INET,SOCK_STREAM,0);
int i;
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
while(true)
{
while(buffer[0]=='\0')
{
i=recv(sock, buffer, sizeof(buffer), 0);
if(i=!false)
{
printf("\nFrom serveur:\n %s", buffer);
}
}
buffer[0]='\0';
}
closesocket(sock);
WSACleanup();
getchar();
}
et comment faire pourle faire dans les deux sens.
Afficher la suite