envoi de fichier par socket [java] - Java - Programmation
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
Marsh Posté le 23-07-2002 à 23:57:05
n'utilise pas de printWrtitter : écrit directement dans une bufferedOutpoutStream
Marsh Posté le 23-07-2002 à 23:57:56
et pour le Reader c'est paraile : lit dans une BufferedInputStream
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
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
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
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.
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 !
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