Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2798 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#]serveur pour transférer des fichier (avec TcpListener ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c#]serveur pour transférer des fichier (avec TcpListener ?)

n°841981
gomoz
Posté le 04-09-2004 à 02:38:07  profilanswer
 

Bonjour,
je galère grave pour trouver comment envoyer en recevoir un fichier grace à TcpListener et Tcpclient. Je débute en c# et cela m'a semblé plus facile que les sockets.
 
Je ne sais pas comment extraire un fichier de mon disque, le mettre dans une variale et l'envoyer à un client qui recomposera tout. Aider moi s'il vous plait !
 
J'ai mis ce que j'ai essayé de coder(grâce à des tuto) pour tester avant de l'intégrer pour mon serveur.
 

Code :
  1. //SERVEUR
  2. TcpListener serveur=new TcpListener(System.Net.IPAddress.Any,5100);
  3. // Démarrage de l'écoute
  4. serveur.Start();
  5. // Connexion d'un client (méthode bloquante)
  6. TcpClient client=serveur.AcceptTcpClient();
  7. NetworkStream stream=client.GetStream();
  8. byte[] buffer=System.Text.Encoding.ASCII.GetBytes("CHAINE2" );
  9. stream.Write(buffer, 0, buffer.Length);
  10. // Fermeture de la connexion
  11. client.Close();
  12. // Arrêt de l'écoute
  13. serveur.Stop();


 

Code :
  1. //CLIENT
  2.   TcpClient client=new TcpClient("127.0.0.1",5100);
  3.   NetworkStream stream=client.GetStream();
  4.   byte[] buffer=new byte[100];
  5.   int nRead=stream.Read(buffer, 0, buffer.Length);
  6.   string chaine=System.Text.Encoding.ASCII.GetString(buffer);
  7.   Console.WriteLine(chaine);
  8.   client.Close();

mood
Publicité
Posté le 04-09-2004 à 02:38:07  profilanswer
 

n°842076
Taz
bisounours-codeur
Posté le 04-09-2004 à 10:03:36  profilanswer
 

ben tu lis la documentation sur comment lire un fichier

n°842139
gomoz
Posté le 04-09-2004 à 12:45:50  profilanswer
 

Oui mais j'ai essayer, j'ai trouvé ca (file1=le fichier à lire, file2=le fichier à écrire):
 

Code :
  1. //partie qui irai bien sur le serveur
  2. // Préparation du flux d'entrée
  3. FileStream inputStream = new FileStream(file1, FileMode.Open);
  4. BinaryReader br = new BinaryReader(inputStream);
  5. long length = inputStream.Length;


 

Code :
  1. //pour le client
  2. // Préparation du flux de sortie
  3. FileStream outputStream = new FileStream(file2, FileMode.Create);
  4. BinaryWriter bw = new BinaryWriter(outputStream);
  5. // Copie des octets du flux d'entrée vers le flux de sortie
  6. for(int i=0; i<length; i++)
  7. {
  8. bw.Write(br.ReadByte());
  9. }


 
Le problème c'est que je n'arrive pas à envoyer "br" par "stream.Write(br, 0, br.Length);" car "br" n'est pas d'un format reconu. Avez vous une idée ?

n°843280
Valeriand
Posté le 06-09-2004 à 13:06:45  profilanswer
 

gomoz a écrit :


Le problème c'est que je n'arrive pas à envoyer "br" par "stream.Write(br, 0, br.Length);" car "br" n'est pas d'un format reconu. Avez vous une idée ?


Ton but est d'envoyer des données au client, donc il ne faut pas envoyer l'objet BinaryReader (situé sur le serveur) mais les données lues par celui-ci.
Pour faire simple:
du côté serveur tu créer ton BinaryReader, celui-ci va lire dans un fichier avec br.Read(). Les données lues seront ensuite envoyées au client avec le stream.Write().
Du côté client tu vas faire un stream.Read() et écrire les données lues avec ton BinaryWriter (bw.Write())


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#]serveur pour transférer des fichier (avec TcpListener ?)

 

Sujets relatifs
[C++] Lecture de fichiercoder 1 client-serveur
Ecrire dans un fichier déjà existant sans écraser le contenu précédent[VBS] copie de fichier anterieur a 7 jours.
Ecrire dans un fichier dans un répertoire paramétrableFichier texte et retour à la ligne
[Batch] Modifier le fichier host ?[Javascript] Input File - Griser le textfield / Test sur le fichier
[Perl] Serveur RPC non disponible pour Win32::OLE.[PHP] Modifier JBrowser pour visualiser les images d'un autre serveur
Plus de sujets relatifs à : [c#]serveur pour transférer des fichier (avec TcpListener ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR