# aktuelle Datum vom Server lesen!



## wintersun (21. Nov 2010)

Hallo Freunde ,

Ich habe eine Frage bezüglich des Datum vom Server, Ich wollte aktuelle Datum vom Server holen natürlich muss ich zuerst mit dem Server (Url : lokalhost  und Port : 6667 ) verbinden, aber ich wieß nicht genau was ich noch nach der Verbindung schreiben soll?
muss ich eine Anfrage( z.B : "TT:MM:YYYY:hh:mm:ss") an Server schicken??

Danke im Voraus!!

Lg.


----------



## madboy (21. Nov 2010)

Was für einen Server meinst du? Apache, Tomcat, was selber gebautes, ...?


----------



## wintersun (21. Nov 2010)

Die Angabe lautet :

In diesem Beispiel erstellen Sie ein Programm, welches über eine Netzwerkverbindung von einem Server die aktuelle Uhrzeit ausliest. Das Serverprogramm wird vom Institut zu Verfügung gestellt und muss lokal auf ihrem Rechner gestartet werden. Dadurch können Sie über die URL „localhost“ und dem
Port 6667 einfach auf diesen Server zugreifen. Bei Verbindung zum Server liefert dieser einmalig den String „TT:MM:YYYY:hh:mm:ss“.

Lg.


----------



## madboy (21. Nov 2010)

In der Beschreibung fehlt zwar das Protokoll (HTTP, FTP, SSH, ...) aber ich vermute mal HTTP. Starte mal das Programm und greife mit deinem Browser auf 
	
	
	
	





```
http://localhost:6667
```
 zu. Kommt die Uhrzeit zurück, lies dir das hier durch: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 18.2 URI und URL

Ansonsten frag am besten beim Aufgabensteller nach was du tun sollst.


----------



## Michael... (21. Nov 2010)

wintersun hat gesagt.:


> Bei Verbindung zum Server liefert dieser einmalig den String „TT:MM:YYYY:hh:mm:ss“.


Vermute mal, es geht hier um einfache Socketverbindung.
1. Socketverbindung aufbauen
2. InputStream des Sockets in einen BufferedReader stecken
3. per readline() den String auslesen.


----------



## mylk (27. Nov 2010)

wintersun hat gesagt.:


> Hallo Freunde ,
> 
> Ich habe eine Frage bezüglich des Datum vom Server, Ich wollte aktuelle Datum vom Server holen natürlich muss ich zuerst mit dem Server (Url : lokalhost  und Port : 6667 ) verbinden, aber ich wieß nicht genau was ich noch nach der Verbindung schreiben soll?
> muss ich eine Anfrage( z.B : "TT:MM:YYYY:hh:mm:ss") an Server schicken??
> ...




Du scheinst auf der TU Wien die Grundlagen zu erlernen.
Deshalb werde ich nicht den gesamten Code hier reinstellen. Programmieren ist Übung - und das kann dir niemand abnehmen.

Zum Verständnis:
Das Programm, das dir gegeben wurde ist ein Server.
Dieser gibt, wenn er kontaktiert wird die Uhrzeit und das Datum her.

Deine Aufgabe ist es einen so genannten "Client" zu erstellen, also ein Programm, dass den Kontakt zum Server aufnimmt, und die Daten vom Server erhält (dein Client bekommt also das Datum und die Uhrzeit vom Server  geschickt!)

Achtung: Du musst den Server starten, damit dein Programm überhaupt etwas empfangen kann!


Nun zu deinem Client (Programm):

Du brauchst also einen Socket, der deinem Programm sagt auf WELCHEN Server er zugreifen soll.
Diese Aufgabe erledigt der Socket.

Ein Stream überträgt (binär soweit ich weiß) die Daten.
Um mit denen etwas anzufangen brauchst du einen StreamReader, der den Stream abhorcht.
Da der StreamReader noch immer nicht das wahre is, lässt du dir TEXT (also strings) in einen BufferedReader schreiben.

Die 4 oben genannten Objekte greifen jeweils auf eine "Ebene" darüber zu, du musst also immer zum InputStream einen Socket angeben, zum ISReader einen IStream, und so weiter. (näheres in den javadoc (google)).

Zuletzt ist deine Aufgabe den String vom BufferedReader mittels .split(); zu verarbeiten.

Vorsicht:
Unten stehender Code ist unvollständig!
Bau all diese Objekte korrekt ein, und du wirst in dem BufferedReader Zeit/Datum erhalten!
(Einfach mal versuchen den BR über System.out.print(BR); auszugeben)




```
Socket("127.0.0.1", 6667);
        InputStream derSocketdaOben.getInputStream();
        InputStreamReader(oben);
        BufferedReader(drüber);
```

Grüße und viel Spaß
Mike


----------

