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 :
Si vous auriez des idées je vous remercie.
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 {} }
Partager