refactor/architecture #1
@@ -9,20 +9,37 @@ public class Client {
|
|||||||
try {
|
try {
|
||||||
// 1 - Création du canal avec un port libre
|
// 1 - Création du canal avec un port libre
|
||||||
DatagramSocket socketClient = new DatagramSocket();
|
DatagramSocket socketClient = new DatagramSocket();
|
||||||
InetAddress adresseClient = InetAddress.getByName("localhost");
|
InetAddress adresseServeur = InetAddress.getByName("localhost");
|
||||||
byte[] envoyees; // tampon d'émission
|
int portServeur = 6666;
|
||||||
byte[] recues = new byte[1024]; // tampon de réception
|
|
||||||
// 2 - Émettre
|
// 2 - Envoyer un message au serveur
|
||||||
String message = "hello serveur RX302";
|
String message = "Hello Server";
|
||||||
envoyees = message.getBytes();
|
byte[] envoyees = message.getBytes();
|
||||||
DatagramPacket messageEnvoye = new DatagramPacket(envoyees, envoyees.length, adresseClient, 6666);
|
DatagramPacket paquetEnvoye = new DatagramPacket(
|
||||||
socketClient.send(messageEnvoye);
|
envoyees, envoyees.length, adresseServeur, portServeur);
|
||||||
|
socketClient.send(paquetEnvoye);
|
||||||
|
System.out.println("Message envoyé au serveur");
|
||||||
|
|
||||||
// 3 - Recevoir
|
// 3 - Recevoir
|
||||||
|
byte[] recues = new byte[1024]; // tampon de réception
|
||||||
DatagramPacket paquetRecu = new DatagramPacket(recues, recues.length);
|
DatagramPacket paquetRecu = new DatagramPacket(recues, recues.length);
|
||||||
socketClient.receive(paquetRecu);
|
socketClient.receive(paquetRecu);
|
||||||
String reponse = new String(paquetRecu.getData(), 0, paquetRecu.getLength());
|
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();
|
socketClient.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println(e);
|
System.err.println(e);
|
||||||
|
|||||||
Reference in New Issue
Block a user