UDP : client <-> server
This commit is contained in:
parent
089b5457cd
commit
53e7aae64d
4 changed files with 66 additions and 54 deletions
|
@ -31,13 +31,21 @@ 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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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() {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
public UdpUnicastClient(int port) {
|
this.clientPort = clientPort;
|
||||||
this.port = port;
|
this.serverPort = serverPort;
|
||||||
|
this.serverIP = serverIP;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
public UdpUnicastServer(int serverPort) {
|
||||||
this.clientIP = clientIP;
|
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.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue