problème de ré assemblage de fichier
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:
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.