UDP : client <-> server

This commit is contained in:
basti 2020-11-26 13:39:42 +01:00
parent 089b5457cd
commit 53e7aae64d
4 changed files with 66 additions and 54 deletions

View file

@ -31,6 +31,8 @@ public class GestionnaireListeUtilisateur {
//ecoute le port de broadcast pour recevoir le message personnalisé //ecoute le port de broadcast pour recevoir le message personnalisé
public String ecoute() { public String ecoute() {
int portEcoute = 2000;
UdpUnicastServer server = new UdpUnicastServer(portEcoute);
@ -38,6 +40,12 @@ public class GestionnaireListeUtilisateur {
return ""; return "";
} }
//envoie en Broadcast aux autres liste les infos sur cet utilisateur
public void envoie() {
}
//met à jour la Liste d'utilisateur //met à jour la Liste d'utilisateur
public void MAJListeUtilisateur() { public void MAJListeUtilisateur() {

View file

@ -6,12 +6,14 @@ import java.util.concurrent.Executors;
public class MainUDP { public class MainUDP {
public static void main(String[] args) { public static void main(String[] args) {
int port = 7001; int portServer = 7001;
UdpUnicastServer server = new UdpUnicastServer(port, "LocalHost"); int portClient = 7000;
UdpUnicastClient client = new UdpUnicastClient(port);
UdpUnicastServer server = new UdpUnicastServer(portServer);
UdpUnicastClient client = new UdpUnicastClient(portClient, portServer, "LocalHost");
ExecutorService executorService = Executors.newFixedThreadPool(2); ExecutorService executorService = Executors.newFixedThreadPool(2);
executorService.submit(client);
executorService.submit(server); executorService.submit(server);
executorService.submit(client);
} }
} }

View file

@ -1,38 +1,49 @@
package nom; package nom;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.io.IOException; import java.io.IOException;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.UnknownHostException;
import java.net.SocketException;
public class UdpUnicastClient implements Runnable{ public class UdpUnicastClient implements Runnable{
private final int port; private final int clientPort;
private final int serverPort;
private final String serverIP;
public UdpUnicastClient(int clientPort, int serverPort, String serverIP) {
this.clientPort = clientPort;
this.serverPort = serverPort;
this.serverIP = serverIP;
public UdpUnicastClient(int port) {
this.port = port;
} }
public void run() { public void run() {
try(DatagramSocket clientSocket = new DatagramSocket(port)){ try(DatagramSocket serverSocket = new DatagramSocket(clientPort)){
byte[] buffer = new byte[65507]; for (int i = 0; i<3; i++) {
//clientSocket.setSoTimeout(3000); String message = "Message number " + i;
while (true) { DatagramPacket datagramPacket = new DatagramPacket(
DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length); message.getBytes(),
clientSocket.receive(datagramPacket); message.length(),
InetAddress.getByName(serverIP),
String receivedMessage = new String(datagramPacket.getData()); serverPort
System.out.println(receivedMessage); );
serverSocket.send(datagramPacket);
} }
} catch (SocketException e) { } catch (SocketException e) {
e.printStackTrace(); e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) { } catch (IOException e) {
System.out.println("Timedout. CLient is closing."); e.printStackTrace();
} }
} }
} }

View file

@ -1,47 +1,38 @@
package nom; package nom;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.io.IOException; import java.io.IOException;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.UnknownHostException; import java.net.DatagramSocket;
import java.net.SocketException;
public class UdpUnicastServer implements Runnable{ public class UdpUnicastServer implements Runnable{
private final int clientPort; private final int serverPort;
private final String clientIP;
public UdpUnicastServer(int clientPort, String clientIP) {
this.clientPort = clientPort;
this.clientIP = clientIP;
public UdpUnicastServer(int serverPort) {
this.serverPort = serverPort;
} }
public void run() { public void run() {
try(DatagramSocket serverSocket = new DatagramSocket(7000)){ try(DatagramSocket serverSocket = new DatagramSocket(serverPort)){
for (int i = 0; i<3; i++) { byte[] buffer = new byte[65507];
String message = "Message number " + i; //serverSocket.setSoTimeout(3000);
DatagramPacket datagramPacket = new DatagramPacket( while (true) {
message.getBytes(), DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length);
message.length(), serverSocket.receive(datagramPacket);
InetAddress.getByName(clientIP),
clientPort String receivedMessage = new String(datagramPacket.getData(), 0, datagramPacket.getLength());
); System.out.println(receivedMessage);
serverSocket.send(datagramPacket);
} }
} catch (SocketException e) { } catch (SocketException e) {
e.printStackTrace(); e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); System.out.println("Timedout. CLient is closing.");
} }
} }
} }