diff --git a/app/src/main/java/clientserver/Client.java b/app/src/main/java/clientserver/Client.java index 98bd287..e209afa 100644 --- a/app/src/main/java/clientserver/Client.java +++ b/app/src/main/java/clientserver/Client.java @@ -9,20 +9,37 @@ public class Client { try { // 1 - Création du canal avec un port libre DatagramSocket socketClient = new DatagramSocket(); - InetAddress adresseClient = InetAddress.getByName("localhost"); - byte[] envoyees; // tampon d'émission - byte[] recues = new byte[1024]; // tampon de réception - // 2 - Émettre - String message = "hello serveur RX302"; - envoyees = message.getBytes(); - DatagramPacket messageEnvoye = new DatagramPacket(envoyees, envoyees.length, adresseClient, 6666); - socketClient.send(messageEnvoye); + InetAddress adresseServeur = InetAddress.getByName("localhost"); + int portServeur = 6666; + + // 2 - Envoyer un message au serveur + String message = "Hello Server"; + byte[] envoyees = message.getBytes(); + DatagramPacket paquetEnvoye = new DatagramPacket( + envoyees, envoyees.length, adresseServeur, portServeur); + socketClient.send(paquetEnvoye); + System.out.println("Message envoyé au serveur"); + // 3 - Recevoir + byte[] recues = new byte[1024]; // tampon de réception DatagramPacket paquetRecu = new DatagramPacket(recues, recues.length); socketClient.receive(paquetRecu); String reponse = new String(paquetRecu.getData(), 0, paquetRecu.getLength()); - System.out.println(reponse + " @" + paquetRecu.getAddress() + ":" + paquetRecu.getPort()); - // 4 - Libérer le canal + + if (reponse.startsWith("PORT:")) { + int newPort = Integer.parseInt(reponse.substring(5)); + + System.out.println("Connexion au nouveau port: " + newPort); + + // 4 - Communiquer sur le nouveau port + String messagePort = "Message au nouveau port"; + byte[] envoyeesPort = messagePort.getBytes(); + DatagramPacket paquetPort = new DatagramPacket( + envoyeesPort, envoyeesPort.length, adresseServeur, newPort); + socketClient.send(paquetPort); + } + + // 5 - Libérer le canal socketClient.close(); } catch (Exception e) { System.err.println(e);