envoie de fichier XML entre 2 clients [java] - Java - Programmation
Marsh Posté le 01-02-2004 à 17:49:42
euh que ça soit de l'xml ou autre n'a rien à voir.
que ça soit un fichier ou pas non plus.
(juste pour te permettre de préciser tes recherches)
Marsh Posté le 01-02-2004 à 18:19:43
ReplyMarsh Posté le 01-02-2004 à 18:36:59
ReplyMarsh Posté le 01-02-2004 à 18:38:26
the real moins moins a écrit : euh |
c'est un fichier que je veux envoyer ...
alors pkoi ça a rien a voir ?
Marsh Posté le 01-02-2004 à 18:48:03
vinz13 a écrit : |
bah d'une part je vois pas pq tu passerais par le systeme de fichier pour echanger tes messages xml, mais c'est pas ça le probleme... le truc c'est qu'un fileinput/output stream est un flux comme un autre
Marsh Posté le 01-02-2004 à 18:58:05
vinz13 a écrit : |
t'as essayé un flush ?
Marsh Posté le 02-02-2004 à 14:37:20
the real moins moins a écrit : bah d'une part je vois pas pq tu passerais par le systeme de fichier pour echanger tes messages xml, mais c'est pas ça le probleme... le truc c'est qu'un fileinput/output stream est un flux comme un autre |
comment faire alors ?
Marsh Posté le 02-02-2004 à 15:49:33
vinz13 a écrit : |
ben c'est surement que tu lis mal les données sur ton inputstream de la socket. Montre ton code d'écoute
Marsh Posté le 03-02-2004 à 14:35:45
Utilise la serialisation !
Avec des ObjectInputStream, ca passe tout seul.
Marsh Posté le 03-02-2004 à 14:44:36
Sujet : [java] envoie de fichier XML
Code :
|
(dsl)
Marsh Posté le 03-02-2004 à 15:11:18
bartleby a écrit : Utilise la serialisation ! |
nan mais il aura le même problème si il écoute mal les données ur le réseau, mais le msr a l'air d'être mort, il répond plus
Marsh Posté le 03-02-2004 à 16:48:10
benou a écrit : |
euh en plus un ObjectIn/OutputStream pour balancer du texte, riche idée
Marsh Posté le 03-02-2004 à 19:15:36
benou a écrit : |
C'est pas un probleme d'écoute.
Le premier fichier passe sans probleme, mais apres cet envoie, la socket est fermée. Alors je peux pas répondre.
d'un coté, je crée un fichier XML, puis j'envoie son contenu.
de l'autre, je recupere le contenu, puis recrée le fichier XML pour le parcourir et extraire le texte et l'emetteur.
mais si tu veux mon code d'écoute:
while( runner != null ) {
try {
File pfile = new File("EDivers/projet/Java/" + pseudo +".xml" );
byte[] buf = new byte[2048];
int i;
InputStream in = socket.getInputStream();
BufferedInputStream bin = new BufferedInputStream(in,2048);
FileOutputStream fos = new FileOutputStream(pfile);
while ((i = bin.read(buf,0,2048)) != -1){
fos.write(buf,0,i);
}
bin.close();
fos.close();
XMLReader parser= XMLReaderFactory.createXMLReader("org.apache.crimson.parser.XMLReaderImpl" );
parser.setContentHandler(monHandler);
parser.parse(new InputSource(new InputStreamReader(new FileInputStream("EDivers/projet/Java/" + pseudo +".xml" ),"UTF8" )));
}
catch (Exception e) {
}
}
Marsh Posté le 03-02-2004 à 20:06:47
catch (Exception e) {
}
AYAN !
chrisbk, un client pour toi
Marsh Posté le 03-02-2004 à 21:38:42
Voyez ? pour se debarasser des messages du compilo a quoi il en est reduit ?
Marsh Posté le 03-02-2004 à 21:39:08
perso j'aurais fait un catch(Throwable) pour etre sur de rien louper
Marsh Posté le 03-02-2004 à 21:50:51
chrisbk a écrit : Voyez ? pour se debarasser des messages du compilo a quoi il en est reduit ? |
bin oui mais bon c'est une erreur de jeunesse
Marsh Posté le 03-02-2004 à 21:54:54
DarkLord a écrit : |
voui, certes, on peut faire plus fin comme gestion d'erreurs
Marsh Posté le 03-02-2004 à 23:20:42
vinz13 a écrit : |
Dis pas ca avec une telle certitude, ton code te contredit juste après ...
vinz13 a écrit : |
un read() ne retourne -1 que lorsque la fin du stream est atteinte. Dans le cas d'une socket, la fin d'un flux intervient quand il est fermé de l'autre côté.
Donc c'est tout à fait normal que ton while boucle jusqu'à se que tu ferme le flux : c'est ce que tu lui demande de faire.
Comme je te le disais, il faut que tu mettes en place un protocole réseau.
exemple : tu envois d'abord la taille du fichier (xml-length: 1234), un retour à la ligne, puis le fichier.
ce qui donne pour le code d'écoute :
Code :
|
je te laisse imaginer le code pour l'envoi ...
Marsh Posté le 04-02-2004 à 15:15:12
chrisbk a écrit : |
Désolé de n'avoir commencé le java que le mois dernier ...
Pour le moment je me concentre sur le bon fonctionnement de mon programme, je verrais apres pour bien gerer les erreurs ! :-)
Marsh Posté le 04-02-2004 à 15:22:21
benou a écrit :
|
merci pour ton aide !
je vais bosser la dessus.
Donc pour l'envoie, je ne ferme plus mon BufferedOutputStream ?
Marsh Posté le 04-02-2004 à 16:26:22
vinz13 a écrit : |
ben si tu veux qu'il reste ouvert pour pouvoir continuer à envoyer des trucs, vaut mieux pas le fermer
Marsh Posté le 01-02-2004 à 12:17:00
Bonjour !
Je fais un messenger en java. Je voudrais que le dialogue entre 2 clients, se fasse par l'envoie de fichier XML.
Comment puis je faire pour envoyer des fichiers XML ?
Pour le moment, j'ouvre le fichier, et le transmet byte a byte.
Mais mon BufferedOutputStream, quand je le ferme apres l'envoie, ferme ma socket de connection entre les clients. Je ne peux donc envoyer qu'un seul fichier, alors que je voudrais établir un dialogue.
Si vous avez un autre moyen pour envoyer ce fichier ...
merci :-)