--- /dev/null
+import java.io.InputStreamReader;\r
+import java.io.OutputStreamWriter;\r
+import java.net.Socket;\r
+import java.net.SocketException;\r
+\r
+/**\r
+ * Connection echo handler. Everything it receives is sent back.\r
+ */\r
+public class EchoHandler implements Runnable {\r
+ private Socket socket;\r
+\r
+ public EchoHandler(Socket socket) {\r
+ this.socket = socket;\r
+ try {\r
+ socket.setTcpNoDelay(false);\r
+ } catch (SocketException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ new Thread(this).start();\r
+ }\r
+\r
+ public void run() {\r
+ {\r
+ try {\r
+ System.out.println("new socket opening on "\r
+ + socket.getLocalPort());\r
+ InputStreamReader in = new InputStreamReader(\r
+ socket.getInputStream());\r
+ OutputStreamWriter out = new OutputStreamWriter(socket.getOutputStream());\r
+ int s;\r
+ while(((s=in.read()) != -1)) {\r
+ out.append((char)s);\r
+ out.flush();\r
+ System.out.print((char)s);\r
+ }\r
+ System.out.println();\r
+ System.out.println("Closing handler");\r
+ } catch (Exception e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+\r
+ }\r
+ }\r
+}\r