import java.net.*; import java.io.*; public class CommandServer { public static void main(String[] args) { if (args.length!=1) { System.out.println("java CommandServer "); System.exit(0); } int port=0; try { port=Integer.parseInt(args[0]); } catch (Exception ex) { System.out.println("java CommandServer "); System.exit(0); } CommandServer server = new CommandServer(port); } public CommandServer(int port) { try { // Einen neuen Server Socket anlegen. Dies ist die // "Kontaktstelle" fuer Verbindungswuensche von Clients: ServerSocket ssock = new ServerSocket(port, 1); while (true) { // Hier wird ein Verbindungswunsch von Client angenommen // dabei wird die Verbindung sofort auf einen anderen // Port umgeleitet, damit weitere Clients Verbindungen // zum Server aufbauen koennen. Normalerweise wird // der socket dann einem eigenen Thread uebergeben, // so dass der Server wieder fuer neue Verbindungswuensche // bereitsteht: Socket sock=ssock.accept(); System.out.println("Accepted new client!"); // ein- und ausgabestroeme des sockets: InputStream sockIn = sock.getInputStream(); OutputStream sockOut = sock.getOutputStream(); // Umwandeln ins richtige Format: BufferedReader sockReader = new BufferedReader(new InputStreamReader(sockIn)); BufferedWriter sockWriter = new BufferedWriter(new OutputStreamWriter(sockOut)); String command = ""; String reply = ""; while(!command.equals("quit")) { // vom Socket lesen: command =sockReader.readLine(); reply = "done: "+command; // auf den Socket schreiben: sockWriter.write(reply,0,reply.length()); sockWriter.newLine(); sockWriter.flush(); } //TCP Verbindungsabbau sock.close(); System.out.println("Client done!"); } } catch (Exception ex) { System.err.println("CommandServer: received exception "+ex); } } }