TCP mit JAVA

Beginner78

Grünschnabel
Hallo,

ich bin Java Anfänger und habe eine Frage zu unten aufgeführtem Code.

Die Aufgabenstellung lautet:

Entwicklung eines TCP-Clients der auf Port 17 den meist mehrzeiligen Spruch zum Tag („Quote of the day“) von einer Kommandozeile angegebenen Server abfragt und ausgibt.

---------------------------------------------------------------------------------
public static void main(String[] args)throws Exception{
final String host = args.length > 0 ? args[0] : "localhost";
check(host, 17);
}
static void check(String host, int port) {

Socket socket = new Socket(host, port);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
int i = 24; // Begrenzung für chargen
String input;
while ((input = in.readLine()) != null && --i > 0)
System.out.println(input);
in.close();
socket.close();
}}
-----------------------------------------------------------------------------------------------

Meine Frage zum TCP-Client ist nun:
-Warum und für was wird hier eine while Schleife verwendet? Hat das etwas mit dem Port 17 zu tun, den ich abfragen soll?
-Kann ich die Schleife auch weglassen?
-Was bedeutet folgende Zeile in der Main-Methode?---final String host = args.length > 0 ? args[0] : "localhost";---

Vielen Dank, würde mich sehr über eine Antwort freuen.

Beginner
 
Hi
Beginner78 hat gesagt.:
Meine Frage zum TCP-Client ist nun:
-Warum und für was wird hier eine while Schleife verwendet? Hat das etwas mit dem Port 17 zu tun, den ich abfragen soll?
Ne, wie schon in der Aufgabenstellung steht, ist die Nachricht mehrzeilig.. In der Schleife werden nun also alle Zeilen ausgelesen, die der Host dir schickt. Und somit auch ein klares

Beginner78 hat gesagt.:
-Kann ich die Schleife auch weglassen?
nein zu dieser Frage. Es sei denn du weist genau, wieviel Zeilen gesendet werden. Die könnte man dann auch einzeln abfragen. Aber die vorgeschlagene Methode ist eleganter
Beginner78 hat gesagt.:
-Was bedeutet folgende Zeile in der Main-Methode?---final String host = args.length > 0 ? args[0] : "localhost";---
Das lässt sich übersetzen zu :
If (args.lenght > 0) host = args[0];
else host = localhost;

Bedeutet also, wenn du ein Argument beim Programmstart angibst, wird dies als Hostadresse genommen, ansonsten ist es der localhost

*grüssle*
MeinerEiner
 
Zurück