[java] envoi de fichier par socket

envoi de fichier par socket [java] - Java - Programmation

Marsh Posté le 23-07-2002 à 23:28:18    

jm y prend surrement mal, j aimerai envoyer un fichier a partir d'une socket
 
au niveau de l emission:
 


try
     {
      dis = new DataInputStream(new FileInputStream(file));
      socket = new Socket(host,port);
  out = new PrintStream(socket.getOutputStream());
        in = new BufferedReader( new InputStreamReader(socket.getInputStream()));    
  }


 
plus loin...
 


     
     while((b=dis.readByte())!=-1)
     {
       
      out.print(b);
      System.out.print((char)b);
     }
 
   }
     
 }


 
 
au niveau de la reception:

try
     {
       
      printwriter = new PrintWriter(new BufferedWriter(new FileWriter(file)));
        }


 
...

     
     while((b=dis.readByte())!=-1)
     {
       
      ecrivain.print(b);
      System.out.print((char)b);
     }
 
   


Message édité par veryfree le 23-07-2002 à 23:38:48
Reply

Marsh Posté le 23-07-2002 à 23:28:18   

Reply

Marsh Posté le 23-07-2002 à 23:30:11    

le fichier a l'arrivée n a pas la meme taille , il est plus petit que  l'original :/
 
si vous pouvez me dire ocmment vous ferez vous?
 
 
 
merci

Reply

Marsh Posté le 23-07-2002 à 23:57:05    

n'utilise pas de printWrtitter : écrit directement dans une bufferedOutpoutStream


Message édité par benou le 23-07-2002 à 23:57:22
Reply

Marsh Posté le 23-07-2002 à 23:57:56    

et pour le Reader c'est paraile : lit dans une BufferedInputStream

Reply

Marsh Posté le 24-07-2002 à 00:00:09    

et puis t'as pas besoin du DataInputStream : lit ton fichier octet par octet dans le InputStream directement

Reply

Marsh Posté le 24-07-2002 à 00:02:07    

merci pour tout j essaye tout de suite

Reply

Marsh Posté le 24-07-2002 à 09:24:21    

heu ouais, ça m'interresse aussi, donc si tu trouves des solutions pas mal, mets les !! please  :D

Reply

Marsh Posté le 24-07-2002 à 10:14:43    

les writer c'est si tu lis des fichiers caractères et autres. Si tu envoies un binaire tu dois passer par les stream, comme l'a dit benou


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-07-2002 à 10:14:47    

Le Java, ça remonte à très loin pour moi mais j'ai déjà été confronté au problème.
 
J'avais utilisé des DataOutputStream et DataInputStream pour l'envoi et la réception.
Seulement, problème de contrôle de flux et il arrivait que des données soient perdues en route. Du coup, je découpais les données à envoyer en blocs d'une certaine taille et l'émetteur attendait un accusé de réception du bloc précédent pour envoyer le bloc suivant.

Reply

Marsh Posté le 24-07-2002 à 10:16:39    

Et pourquoi pas utiliser un protocole déjà existant ?

Reply

Marsh Posté le 24-07-2002 à 10:16:39   

Reply

Marsh Posté le 24-07-2002 à 10:57:24    

JBM a écrit a écrit :

Le Java, ça remonte à très loin pour moi mais j'ai déjà été confronté au problème.
 
J'avais utilisé des DataOutputStream et DataInputStream pour l'envoi et la réception.
Seulement, problème de contrôle de flux et il arrivait que des données soient perdues en route. Du coup, je découpais les données à envoyer en blocs d'une certaine taille et l'émetteur attendait un accusé de réception du bloc précédent pour envoyer le bloc suivant.




Les Data*Stream c'est pour envoyer des types Java, je crois, c'est pas adapté à la transmission de binaires à mon avis.
 
Vous compliquez pas la vie : faite des InputStream et OutPutStream. Vosu les Bufferisez pour que ce soit plus joli et ca devrait rouler !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed