import java.net.*; import java.io.*; public class multisrv { static String port = "5194"; public static void main(String[] argv) { if (argv.length == 0) multisrv(port); else multisrv(argv[0]); } public static void multisrv(String port) { // tcp/ip version try { ServerSocket srv = new ServerSocket(Integer.parseInt(port)); while (true) { Socket sock = srv.accept(); System.err.println("java multisrv " + sock); new echo1(sock); } } catch (IOException e) { e.printStackTrace(); } } } class echo1 extends Thread { Socket sock; echo1(Socket sock) { this.sock = sock; start(); } public void run() { try { BufferedReader in = new BufferedReader( new InputStreamReader(sock.getInputStream())); BufferedWriter out = new BufferedWriter( new OutputStreamWriter(sock.getOutputStream())); String s; while ((s = in.readLine()) != null) { out.write(s); out.newLine(); out.flush(); System.err.println(sock.getInetAddress() + " " + s); if (s.equals("exit")) break; if (s.equals("die!")) // a way to kill the server System.exit(0); } sock.close(); } catch (IOException e) { System.err.println("server exception " + e); } } }