reset a3, kut Charlie ;)
[tt2015.git] / a3 / code / jtorx / server / EchoHandler.java
diff --git a/a3/code/jtorx/server/EchoHandler.java b/a3/code/jtorx/server/EchoHandler.java
new file mode 100644 (file)
index 0000000..c60a9f0
--- /dev/null
@@ -0,0 +1,46 @@
+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