Bonjour,

Je suis actuellement étudiant en IUT et j'ai un projet de logiciel réseau en c# à faire. J'ai fait un logiciel de transfert de fichier type peer-to-peer cependant j'ai des problèmes pour la reconstruction du fichier lors de l'envoie.
En effet une fois le fichier télécharger sur un autre ordinateur le fichier que je reçois ne fait pas la même taille et l'image n'est pas correct (décalage ou couleur bizarre) . J'ai deux fonctions, une pour le téléchargement et une lors de la demande d'envoie de fichier. Voici ces fonctions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
private void telechargement()
        {
            int NbByte = 1440;
            byte[] b = new byte[NbByte];
            int NbByteLus;
            FileStream fs = File.OpenWrite("downloads\\" + nomfichier); //création du fichier dans le dossier downloads
            NbByteLus = client.Client.Receive(b);
            while (NbByteLus > 0) //tant qu'il reste des bits du fichier
            {
                fs.Write(b, 0, b.Length); //remplissage du fichier avec les bits reçus
                b = null;
                b = new byte[NbByte]; 
                NbByteLus = client.Client.Receive(b);
                Thread.Sleep(20);
                
            }
            fs.Close();
            EVTFinTelechargement(nomfichier); //Evènement de fin de téléchargement
            MessageBox.Show("Le fichier " + nomfichier + " a été téléchargé !");
            download = null;
        }



//lors de l'attente d'une demande d'un fichier par un autre utilisateur
        public void AttenteDemandeFichier()
        {
            TcpClient clientDemandeur;
            StreamReader fluxin;
            ecoute = new TcpListener(5002); //attente d'un utilisateur
            ecoute.Start();
            try
            {
                while (true)
                {
                    clientDemandeur = ecoute.AcceptTcpClient();
                    fluxin = new StreamReader(clientDemandeur.GetStream());
                    string nf = fluxin.ReadLine(); //on récupère le nom du fichier que l'utilisateur demande
                    clientDemandeur.Client.SendFile("partagés\\" + nf); //envoie du fichier
                    clientDemandeur.Close();
                    fluxin.Close();
                    clientDemandeur = null;
                }
            }
            catch {}
        }
Si vous auriez des idées je vous remercie.