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
0
A
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();
}
}
}