tp1 p4 p2p

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

code client :

package tp1.p4.cherbal;
import java.io.*;
import java.net.*;

public class client {


public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 4999);

Thread senderThread = new Thread(new Sender(socket));


Thread receiverThread = new Thread(new Receiver(socket));

senderThread.start();
receiverThread.start();
}
}

class Sender implements Runnable {


private Socket socket;

public Sender(Socket socket) {


this.socket = socket;
}

@Override
public void run() {
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

BufferedReader userInput = new BufferedReader(new


InputStreamReader(System.in));
String message;

while (true) {
message = userInput.readLine();
out.println(message);
if (message.equals("exit")) {
break;
}
}

socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

class Receiver implements Runnable {


private Socket socket;

public Receiver(Socket socket) {


this.socket = socket;
}

@Override
public void run() {
try {
BufferedReader in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));

String message;
while (true) {
message = in.readLine();
if (message == null) {
break;
}
System.out.println("Server: " + message);
}

socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

code serveur :
package serveur;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.List;

public class serveur {


static List<ClientHandler> clients = new ArrayList<>();

public static void main(String[] args) throws IOException {


ServerSocket serverSocket = new ServerSocket(4999);
System.out.println("Serveur en attente de connexions...");

while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println("Nouveau client connecté!");

ClientHandler clientHandler = new ClientHandler(clientSocket);


clients.add(clientHandler);
Thread clientThread = new Thread(clientHandler);
clientThread.start();
}
}

static void broadcast(String message) {


for (ClientHandler client : clients) {
client.sendMessage(message);
}
}
}

class ClientHandler implements Runnable {


private Socket socket;
private PrintWriter out;

public ClientHandler(Socket socket) {


this.socket = socket;
}

@Override
public void run() {
try {
out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));

String message;
while (true) {
message = in.readLine();
if (message == null || message.equals("exit")) {
break;
}
System.out.println("Client: " + message);
serveur.broadcast("Client: " + message);
}

socket.close();
serveur.clients.remove(this);
} catch (IOException e) {
e.printStackTrace();
}
}

public void sendMessage(String message) {


out.println(message);
}
}

You might also like