feat: refactor client and added a receive thread, possibility to chat with server via client handler
This commit is contained in:
@@ -15,13 +15,15 @@ public class ClientHandler implements Runnable {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
private void sendConnectedClients() {
|
||||
Server.sendMessage(clientHandlerSocket, Server.getPseudos(), client.getAddress(), client.getPort());
|
||||
private void sendConnectedClients(String message) {
|
||||
if (message.equals("/list")) {
|
||||
Server.sendMessage(clientHandlerSocket, Server.getPseudos(), client.getAddress(), client.getPort());
|
||||
}
|
||||
}
|
||||
|
||||
private void handleDeconnexion(String message) {
|
||||
if (message.equals("DISCONNECT")) {
|
||||
System.out.println("Déconnexion du client : " + client.getPseudo());
|
||||
System.out.println("Client deconnection : " + prettyPrint(client));
|
||||
Server.removeClientHandler(client.getPseudo());
|
||||
stop();
|
||||
}
|
||||
@@ -34,13 +36,22 @@ public class ClientHandler implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
public String prettyPrint(Client client) {
|
||||
StringBuilder str = new StringBuilder();
|
||||
str.append(client.getPseudo() +
|
||||
" (" +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort() +
|
||||
")");
|
||||
return str.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(
|
||||
"Started handler for client " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort());
|
||||
prettyPrint(client));
|
||||
|
||||
while (running && !clientHandlerSocket.isClosed()) {
|
||||
DatagramPacket packet = Server.receivedPacket(clientHandlerSocket);
|
||||
@@ -52,21 +63,16 @@ public class ClientHandler implements Runnable {
|
||||
0,
|
||||
packet.getLength());
|
||||
System.out.println(
|
||||
"Received from " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort() +
|
||||
": " +
|
||||
prettyPrint(client) + " : " +
|
||||
message);
|
||||
|
||||
sendConnectedClients();
|
||||
handleDeconnexion(message);
|
||||
// Possibilies
|
||||
sendConnectedClients(message); // /list command
|
||||
handleDeconnexion(message); // exit command or DISCONNECT
|
||||
}
|
||||
|
||||
System.out.println(
|
||||
"Client handler terminated for " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort());
|
||||
prettyPrint(client));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user