Threaded Java socket server and client
Create a server at port 5556 with a MessageHandler, which is the EchoHandler in this example.
SocketServer server = new SocketServer(5556, new EchoHandler());Create a client connecting to localhost's port 5556.
SocketClient client = new SocketClient(InetAddress.getLocalHost(), 5556);Send a message from the client.
client.println("Hello!");Print out the message from the server. The function SocketClient.readLine() blocks.
System.out.println(client.readLine());The EchoHandler implements the MessageHandler interface and overrides the abstract method onReceive(). The argument connection enables you to send a string back to the client.
public class EchoHandler implements MessageHandler {
@Override
public void onReceive(Connection connection, String message) {
connection.send(message);
}
}SocketServer is threaded. It creates a thread for accepting connections and creates a new thread each time a new client is connected.
SocketClient is not threaded and the function readLine() blocks.