2016-07-05 10 views
0

Ich folgte diesem Tutorial, um einen Chat mit mehreren Clients und einem Server: http://inetjava.sourceforge.net/lectures/part1_sockets/InetJava-1.9-Chat-Client-Server-Example.html aber ich habe ein Problem, ich möchte der Client seinen Benutzernamen senden, wenn er die App über die Eingabeaufforderung wie folgt startet : java -jar Client.jar Jonny aber ich weiß nicht, wie das geht. Wenn mir jemand erklären kann .. Danke für Ihre Antworten.Java Chat Server Client Problem

Antwort

1

Wenn Sie Ihre Parameter wie java -jar Client.jar Jonny eingeben, können Sie das Argument in der Hauptmethode der Client-Klasse als String-Array abrufen.

Zum Beispiel können Sie das erste Argument wie folgt ausdrucken:

public static void main(String[] args) 
{ 
    //This will output: "The first argument is: Jonny" 
    System.out.println("The first argument is: "+args[0]); 
} 

Alles, was Sie jetzt tun müssen, ist dies an den Server senden. Wenn Sie das NakovChat-Beispiel verwenden, könnte es etwa so aussehen:

public static void main(String[] args) 
    { 
     BufferedReader in = null; 
     PrintWriter out = null; 
     try { 
      // Connect to Nakov Chat Server 
      Socket socket = new Socket(SERVER_HOSTNAME, SERVER_PORT); 
      in = new BufferedReader(
       new InputStreamReader(socket.getInputStream())); 
      out = new PrintWriter(
       new OutputStreamWriter(socket.getOutputStream())); 

      System.out.println("Connected to server " + 
       SERVER_HOSTNAME + ":" + SERVER_PORT); 
      //We print out the first argument on the socket's outputstream and then flush it 
      out.println(args[0]); 
      out.flush(); 
     } catch (IOException ioe) { 
      System.err.println("Can not establish connection to " + 
       SERVER_HOSTNAME + ":" + SERVER_PORT); 
      ioe.printStackTrace(); 
      System.exit(-1); 
     } 

     // Create and start Sender thread 
     Sender sender = new Sender(out); 
     sender.setDaemon(true); 
     sender.start(); 


     try { 
      // Read messages from the server and print them 
      String message; 
      while ((message=in.readLine()) != null) { 
       System.out.println(message); 
      } 
     } catch (IOException ioe) { 
      System.err.println("Connection to server broken."); 
      ioe.printStackTrace(); 
     } 

    } 
}