fix: basic client server on same port
This commit is contained in:
31
app/src/main/java/clientserver/Client.java
Normal file
31
app/src/main/java/clientserver/Client.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user