Salut.
Je vais vous expliquer mon petit problème.
Je crée un client et un serveur.
Des que le serveur recoit une demande il envoie un fichier en utilisant un thread vers le client.
Seulement quand je teste sur mon PC tout se passe bien.
Dès que je teste les deux programmes sur deux ordis différents du
réseau le client recoit le fichier mais l'image est toute décalée (elle
ressemble plus à rien).
Pourquoi un tel phénomène quand on test sur le réseau et le net?
Comment y remédier.
char buffer[512];
struct sockaddr_in sin;
int i, r;
int size = sizeof(struct sockaddr_in);
sin.sin_family = AF_INET;
sin.sin_port = htons(50);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
if(WSAStartup(0x101, &w) == 0)
{
if((sock_client = socket(AF_INET, SOCK_STREAM, 0)) != INVALID_SOCKET)
{
if(connect(sock_client, (struct sockaddr *)&sin, size) == 0)
{
//création fichier sur le disque
fichier=fopen("1.bmp","w+b");
if(fichier == NULL)
{
exit(1);
}
//recevoir taille
recv(sock_client,(char *)&taille,sizeof(taille),0);
//tant que taille>taille_buf
temp=taille;
while(temp>TAILLE_BUF)
{
//recoit partie fichier
recv(sock_client,transfert, TAILLE_BUF, 0);
//on ecrit le contenu dans le fichier
fwrite(transfert,1, TAILLE_BUF, fichier);
temp=temp-TAILLE_BUF;
}
recv(sock_client, transfert, temp, 0);
fwrite(transfert,1, TAILLE_BUF, fichier);
fclose (fichier);
closesocket (sock_client);
}
else MessageBox(0, "Erreur connexion Serveur !", NULL, MB_ICONERROR);
}
else MessageBox(0, "Erreur création Socket Client !", NULL, MB_ICONERROR);
}
else MessageBox(0, "erreur WSAStartup() !", NULL, MB_ICONERROR);
}
Ceci marche parfaitement sur mon PC mais pas sur le réseau ce qui est le principe des clients serveurs snifff.