1 package kawa; 2 import gnu.expr.*; 3 import gnu.mapping.*; 4 5 public class TelnetRepl extends Procedure0 6 { 7 java.net.Socket socket; 9 10 Language language; 11 12 public TelnetRepl(Language language, java.net.Socket socket) 13 { 14 this.language = language; 15 this.socket = socket; 16 } 17 18 public Object apply0 () 19 { 20 try 21 { 22 Shell.run(language, Environment.getCurrent()); 23 return Values.empty; 24 } 25 finally 26 { 27 try 28 { 29 socket.close(); 30 } 31 catch (java.io.IOException ex) 32 { 33 } 34 } 35 } 36 37 38 42 public static void serve (Language language, java.net.Socket client) 43 throws java.io.IOException 44 { 45 Telnet conn = new Telnet(client, true); 46 java.io.OutputStream sout = conn.getOutputStream(); 47 java.io.InputStream sin = conn.getInputStream(); 48 OutPort out = new OutPort(sout); 49 TtyInPort in = new TtyInPort(sin, "<stdin>", out); 50 56 57 Thread thread = new Future(new TelnetRepl(language, client), 58 Environment.getCurrent(), 59 in, out, out); 60 thread.start(); 61 } 62 } 63 64 | Popular Tags |