Envoi et réception dun fichier.txt en java
Fermé
islem gnichi
-
15 janv. 2016 à 14:52
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 16 janv. 2016 à 14:55
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 16 janv. 2016 à 14:55
Bonsoir,tous le monde;Le but de mon question est comment réaliser deux programmes (Client et Server) permettant le transfert d’un fichier. Le client devra lire un fichier.txt depuis le disque dur et l’envoyer en utilisant le protocole UDP(en mode multicast). Le serveur(s) devra recevoir le fichier par le réseau et l’enregistrer sur le disque dur.
le client et le serveur sont deux PCs distincts.
merci.
le client et le serveur sont deux PCs distincts.
merci.
A voir également:
- Envoi et réception dun fichier.txt en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Java apk - Télécharger - Langages
1 réponse
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
122
16 janv. 2016 à 00:03
16 janv. 2016 à 00:03
Bonjour,
Vous pouvez faire appel aux "Socket"
Plein d'exemples sont disponibles, faites une tentative et on verra après si vous aurez des problèmes.
https://docs.oracle.com/javase/tutorial/networking/sockets/
Bon Courage.
Vous pouvez faire appel aux "Socket"
Plein d'exemples sont disponibles, faites une tentative et on verra après si vous aurez des problèmes.
https://docs.oracle.com/javase/tutorial/networking/sockets/
Bon Courage.
16 janv. 2016 à 09:25
Voici le code d'envoi:
FileInputStream fis = new FileInputStream(file1);
byte[] clientBuffer = new byte[1024];
System.out.println("Sending PL to Listener..");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
fis.read(clientBuffer);
baos.write(clientBuffer);
MulticastSocket ds = new MulticastSocket();
InetAddress adrss = InetAddress.getByName(MULTI_ADDR1);
DatagramPacket packet = new DatagramPacket(clientBuffer, clientBuffer.length, adrss, port3);
fis.close();
ds.send(packet);
ds.close();
System.out.println("PL file has been sent");
et ici le code de réception:
InetAddress inetAddress = InetAddress.getByName(MULTI_ADDR1);
MulticastSocket ds = new MulticastSocket(port3);
ds.joinGroup(inetAddress);
byte[] receivedPacket = new byte[1024];
DatagramPacket packet = new DatagramPacket( receivedPacket, receivedPacket.length ) ;
ds.receive( packet );
System.out.println("received the PL file..");
FileOutputStream fos = new FileOutputStream(file3);
byte[] data = packet.getData();
fos.write(data);
fos.flush();
fos.close();
ds.leaveGroup(inetAddress);
ds.close();
l'envoi est fait parfaitement et affiche tous les messages,mais le serveur reste en écoute et ne recu aucun fichier!
16 janv. 2016 à 14:55
Je ne vois pas l'ouverture de la Socket du côté client ni l'acceptance de la connexion de côté serveur alors je suppose que vous les avez fait ailleur.
Il faut récupérer le OutputStream de la socket côté client et le InputStream de la socket côté serveur. Ensuite, l'utiliusation d'un BufferedReader et d'un BufferedWriter vous permettra de faire des "println" côté client et des "readLine" côté serveur. Ainsi, vous exploitez le fait d'avoir un fichier texte (très compatible avec la nature des Socket) et non pas des données binaires.
Un exemple dans ce sense :
https://cs.lmu.edu/~ray/notes/javanetexamples/