refactor/architecture #1

Closed
Xeon0X wants to merge 8 commits from refactor/architecture into main
Showing only changes of commit d82e10451d - Show all commits

View File

@@ -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);