package toast.examples; import jaci.openrio.delegate.BoundDelegate; import jaci.openrio.delegate.Security; import jaci.openrio.toast.core.network.SocketManager; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; public class EchoDelegate implements BoundDelegate.ConnectionCallback { BoundDelegate delegate_instance; public void register() { // This would be called from your Main module class delegate_instance = SocketManager.register("MyEchoDelegate"); delegate_instance.callback(this); delegate_instance.setPassword("hunter2", Security.HashType.SHA1); } @Override public void onClientConnect(Socket clientSocket, BoundDelegate delegate) { // This is called when a client is connected, has entered the correct password (if one exists) and is on the right port Thread echoThread = new Thread(new Runnable() { @Override public void run() { // Just echos what the client said try { BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); DataOutputStream output = new DataOutputStream(clientSocket.getOutputStream()); while (true) { String line = reader.readLine(); output.writeBytes(line); } } catch (IOException e) { } } }); } }