Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Tutorstunde 10.

Ähnliche Präsentationen


Präsentation zum Thema: "Tutorstunde 10."—  Präsentation transkript:

1 Tutorstunde 10

2 Server Server hat: Typ: Webserver etc…
IP: Adresse: oder oder localhost (loopback) Port(s): In unserem Fall 8000 Ein Server stellt einen Dienst bereit den Clients verwenden können Der Port kann die Art des Servers definieren

3 Umgang mit einem Server
ServerSocket ClientSocket

4 ServerSocket Zum Verbindungsaufbau An dieses Socket wird der Port gebunden: ServerSocket serverSocket = new ServerSocket(8000); // 8000 ist der Port an den wir das Socket binden Nimmt Clients an über: Socket clientSocket = serverSocket.accept(); //blockiert!

5 ClientSocket Muss Port und IP-Adresse wissen zum Connecten Kann auch nur über Sockets kommunizieren Socket socket = new Socket(“IP-als-String zb “, PORT);

6 Wie kann man sich Sockets vorstellen?
Sockets sind Schnittstellen zwischen Server und Client. Jedes Socket hat einen Server und einen Client das nur für die Kommunikation zwischen diesen zuständig ist

7 WICHTIG Sockets müssen IMMER geschlossen werden egal was passiert: Stromausfall etc… ServerSocket s = new….. try { … } catch (Exception …) { //Bitte sinnvolle Exceptions handeln } finally { try { s.close(); } catch(Exception) {;} // Hier sollte nur Exception stehen und keine //Behandlung Warum? }

8 Socket IN OUT Flush erklären Server Client OUT IN

9 Download von einem Server PORT: 80
Anfrage an einen HTTP Webserver: Client muss Request schicken Server schickt Response Zeile Typ der Anfrage (GET) Pfad der Anfrage (Ohne Host) Protokoll (HTTP/1.0) Zeile Host Bsp für die Aufgabe: String request = “GET /….Pfad.csv HTTP/1.1“; String host = “Host: www2.in.tum.de“; Zeilen mit “\n\r“ trennen! Und nach print flushen

10 Wie komme ich an die Daten?
HTTP-Request Stream zum Server der vorher aufgebaut wurde (Achtung, Header ist auch noch dabei) Unsere CSV-Datei

11 Comparable und Iterator
Zwei sehr wichtige Interfaces die man häufig sieht und braucht Comparable macht zwei Objekte vergleichbar – compareTo muss implementiert werden Iterator macht Mengen von Objekten iterierbar mittels der for (Object o : Menge) -> Foreach-Schleife

12 Funktionen als Methodenparameter übergeben
Manche sagen das ginge in Java nicht: Eigentlich geht’s auch nicht. Verwendung des Interface Function<TypVonInput, TypVonOutput> Man muss apply(TypVonInput) überschreiben und das Ergebnis der Funktion zurückgeben (hat den Typ TypVonOutput)

13 Beispiel Funktion die Strings auf ihre Länge mapt: class FunctionStringToLengthMap implements Function<String, Integer> public Integer apply(String input) { return input.length; }

14 Predicate Selbes Prinzip wie bei Function nur dieses Mal eine Condition die erfüllt werden public boolean test(TypVonPedicate var { return irgendwas; } Dr. rer. nat. Erika Mustermann (TUM) | kann beliebig erweitert werden | Infos mit Strich trennen


Herunterladen ppt "Tutorstunde 10."

Ähnliche Präsentationen


Google-Anzeigen