feat: reformat for better understanding and added a client handler list to main server
This commit is contained in:
@@ -6,69 +6,72 @@ import java.net.DatagramSocket;
|
||||
|
||||
public class ClientHandler implements Runnable {
|
||||
|
||||
private final DatagramSocket socket;
|
||||
private final DatagramSocket clientHandlerSocket;
|
||||
private final Client client;
|
||||
private boolean running = true;
|
||||
|
||||
public ClientHandler(DatagramSocket socket, Client client) {
|
||||
this.socket = socket;
|
||||
this.clientHandlerSocket = socket;
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public void sendConnectedClients() {
|
||||
Server.sendMessage(clientHandlerSocket, Server.getPseudos(), client.getAddress(), client.getPort());
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
running = false;
|
||||
if (socket != null && !socket.isClosed()) {
|
||||
socket.close();
|
||||
if (clientHandlerSocket != null && !clientHandlerSocket.isClosed()) {
|
||||
clientHandlerSocket.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
System.out.println(
|
||||
"Started handler for client " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort()
|
||||
);
|
||||
"Started handler for client " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort());
|
||||
|
||||
// try {
|
||||
// socket.setSoTimeout(30000);
|
||||
// socket.setSoTimeout(30000);
|
||||
// } catch (Exception e) {
|
||||
// System.err.println("Could not set socket timeout");
|
||||
// System.err.println("Could not set socket timeout");
|
||||
// }
|
||||
|
||||
while (running && !socket.isClosed()) {
|
||||
DatagramPacket packet = Server.receivedPacket(socket);
|
||||
if (packet == null) continue;
|
||||
while (running && !clientHandlerSocket.isClosed()) {
|
||||
DatagramPacket packet = Server.receivedPacket(clientHandlerSocket);
|
||||
if (packet == null)
|
||||
continue;
|
||||
|
||||
String message = new String(
|
||||
packet.getData(),
|
||||
0,
|
||||
packet.getLength()
|
||||
);
|
||||
packet.getData(),
|
||||
0,
|
||||
packet.getLength());
|
||||
System.out.println(
|
||||
"Received from " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort() +
|
||||
": " +
|
||||
message
|
||||
);
|
||||
"Received from " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort() +
|
||||
": " +
|
||||
message);
|
||||
|
||||
sendConnectedClients();
|
||||
// Reply with echo
|
||||
// String response = "ECHO: " + message;
|
||||
// Server.sendMessage(
|
||||
// socket,
|
||||
// response,
|
||||
// client.getAddress(),
|
||||
// client.getPort()
|
||||
// socket,
|
||||
// response,
|
||||
// client.getAddress(),
|
||||
// client.getPort()
|
||||
// );
|
||||
}
|
||||
|
||||
System.out.println(
|
||||
"Client handler terminated for " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort()
|
||||
);
|
||||
"Client handler terminated for " +
|
||||
client.getAddress() +
|
||||
":" +
|
||||
client.getPort());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user