fix: basic client server on same port

This commit is contained in:
Morph01
2025-03-25 16:46:05 +01:00
parent 746dbf0238
commit 135af82172
2 changed files with 61 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
package clientserver;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Client {
public static void main(String[] args) {
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);
// 3 - Recevoir
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
socketClient.close();
} catch (Exception e) {
System.err.println(e);
}
}
}

View File

@@ -1,6 +1,9 @@
package clientserver;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
public class Server {
static void scannerUDP(int startPort, int endPort) {
@@ -15,4 +18,31 @@ public class Server {
System.out.println(e);
}
}
public static void main(String[] args) {
try {
// 1 - Création du canal
DatagramSocket socketServeur = new DatagramSocket(null);
// 2 - Réservation du port
InetSocketAddress adresse = new InetSocketAddress("localhost", 6666);
socketServeur.bind(adresse);
byte[] recues = new byte[1024]; // tampon d'émission
byte[] envoyees; // tampon de réception
// 3 - Recevoir
DatagramPacket paquetRecu = new DatagramPacket(recues, recues.length);
socketServeur.receive(paquetRecu);
InetAddress adrClient = paquetRecu.getAddress();
int prtClient = paquetRecu.getPort();
System.out.println("Nouveau client : @" + adrClient + ":" + prtClient);
// 4 - Émettre
String reponse = "Serveur RX302 ready";
envoyees = reponse.getBytes();
DatagramPacket paquetEnvoye = new DatagramPacket(envoyees, envoyees.length, adrClient, prtClient);
socketServeur.send(paquetEnvoye);
// 5 - Libérer le canal
socketServeur.close();
} catch (Exception e) {
System.err.println(e);
}
}
}