From 61b2310420ae7c5e50c6d595e47215ae6a556781 Mon Sep 17 00:00:00 2001 From: trochas Date: Tue, 11 Feb 2025 16:33:08 +0100 Subject: [PATCH] =?UTF-8?q?tftpput=20server,=20(non=20test=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/pr/tp2/udp/tftp/TftpPutServeur.java | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/src/main/java/pr/tp2/udp/tftp/TftpPutServeur.java b/src/main/java/pr/tp2/udp/tftp/TftpPutServeur.java index 4b968ff..9875fad 100644 --- a/src/main/java/pr/tp2/udp/tftp/TftpPutServeur.java +++ b/src/main/java/pr/tp2/udp/tftp/TftpPutServeur.java @@ -3,33 +3,52 @@ package pr.tp2.udp.tftp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; +import java.net.InetSocketAddress; import java.net.SocketAddress; public class TftpPutServeur { public static void main(String[] args) { - // Attends sur le port 6969 + try { + // Attends sur le port 6969 + DatagramSocket socket = new DatagramSocket(6969); - // Boucle + // Boucle + while(true){ + byte buffer[] = new byte[100]; - // Reception du packet - DatagramPacket p = null; + // Reception du packet + DatagramPacket p = new DatagramPacket(buffer, buffer.length); + socket.receive(p); - // Affichage du packet + String requete = new String(buffer); - // Attention à ne pas afficher plus d'informations que nécessaire. + // Affichage du packet + System.out.println("requete : " + requete); - // Décodage du packet - decodeRequest(p); + // Attention à ne pas afficher plus d'informations que nécessaire. + //System.out.println("plus d'informations que nécessaire"); - // Envoyer acquittement - // sendAck(server, /***/); + // Décodage du packet + decodeRequest(p); + + // Envoyer acquittement + short seq = 2; + sendAck(socket,seq,new InetSocketAddress(p.getAddress(), p.getPort())); //TODO + } + } + catch (Exception e) { + + } } public static void sendAck(DatagramSocket server, short seqNumber, SocketAddress dstAddr) throws IOException { System.out.println("Send " + seqNumber + " to " + dstAddr); // Construire le paquet avec les bonnes informations + byte[] ackBytes = "ack".getBytes(); + DatagramPacket p = new DatagramPacket(ackBytes,ackBytes.length,dstAddr); + server.send(p); // afficher le tableau de bytes envoyé