Updated and removed while loop in SocketServer

This commit is contained in:
Jesper Saastamoinen 2024-12-13 15:08:54 +01:00
parent 4b64684cb3
commit 0606c7af3b
3 changed files with 22 additions and 25 deletions

View file

@ -1,8 +1,6 @@
package com.jsaasta.froj.stdlib.socket; package com.jsaasta.froj.stdlib.socket;
import java.io.IOException; import java.io.*;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
class ClientHandler implements Runnable { class ClientHandler implements Runnable {
@ -26,7 +24,6 @@ class ClientHandler implements Runnable {
String message = new String(buffer, 0, bytesRead); String message = new String(buffer, 0, bytesRead);
System.out.println("Received message from client: " + message); System.out.println("Received message from client: " + message);
out.write(message.getBytes()); out.write(message.getBytes());
SocketServer.messageQueue.put(message); SocketServer.messageQueue.put(message);

View file

@ -28,29 +28,26 @@ public class SocketServer implements FrojCallable {
final int PORT = param.intValue(); final int PORT = param.intValue();
serverSocket = new ServerSocket(PORT); serverSocket = new ServerSocket(PORT);
while (true) {
Socket socket = serverSocket.accept();
System.out.println("Incoming connection from " + socket.getInetAddress());
ClientHandler clientHandler = new ClientHandler(socket); Socket socket = serverSocket.accept();
clientHandler.run(); System.out.println("Incoming connection from " + socket.getInetAddress());
String nextMessage = getNextMessage();
if(nextMessage.toLowerCase().contentEquals("exit")){ ClientHandler clientHandler = new ClientHandler(socket);
shutdown(); clientHandler.run();
break; String nextMessage = getNextMessage();
} if (nextMessage.toLowerCase().contentEquals("exit")) {
try{ shutdown();
return Double.parseDouble(nextMessage); return EXIT_CODE;
} catch (NumberFormatException e) {
return nextMessage;
}
} }
return EXIT_CODE; try {
} catch (IOException e) { return Double.parseDouble(nextMessage);
throw new RuntimeException(e.getMessage()); } catch (NumberFormatException e) {
} catch (InterruptedException e) { return nextMessage;
throw new RuntimeException(e); }
} finally{
} catch (IOException | InterruptedException e) {
throw new StdlibRuntimeError(e.getMessage());
} finally {
shutdown(); shutdown();
} }
} }

View file

@ -12,6 +12,9 @@ class SocketClient {
BufferedReader reader = new BufferedReader(input); BufferedReader reader = new BufferedReader(input);
String message = reader.readLine(); String message = reader.readLine();
if(message.contentEquals("SHUTMEDOWN")){
break;
}
String response = sendMessage(message); String response = sendMessage(message);
if (response != null) { if (response != null) {
System.out.println("Received response from server: " + response); System.out.println("Received response from server: " + response);