Netzwerkprogrammierung

URL und URLConnection

Klasse java.net.URL

 System.out.println( readFileFromUrl( "http://tutego.de/javabuch/aufgaben/bond.txt" ) ); 

Lösung

Klasse java.net.URLConnection

Erzeuge ein java.net.URL-Objekt und mit seiner Hilfe ein java.net.URLConnection-Objekt. Frage URLConnection nach der letzten Änderung der Webseite und der Länge der Datei.

 Klasse java.net.URL mit GET-Anfragen

Öffne ein grafisches Dialog-Fenster und frage nach einem Ländercode (etwa DE, AT, ...). Nutze einen Dienst unter http://www.geonames.org/export/ws-overview.html um Basisinformationen über dieses Land einzuholen.

Internet-Adressen

Klasse java.net.InetAdress

Welche IP-Adresse haben die Rechner tutego.com, tutego.de und www.spiegel.de?

Socket und ServerSocket

Portscanner

Server bieten an den unterschiedlichsten Ports Dienste an. Gesucht ist ein Programm, welches herausfindet, hinter welchem Port sich ein Dienst befindet. Dazu muss unser Programm versuchen, eine Verbindung aufzubauen. Gelingt dies nicht, so befindet sich kein Dienst hinter dem Port.

Hinweis: Unter UNIX sind einige so genannte well-known Ports mit interessanten Diensten wie Echo-Dienst oder Zeit-Dienst belegt. Unter Windows ist das leider nicht so. Unter Windows findet der Scanner daher nichts.

Eine "Unterhaltung" mit ELIZA *

ELIZA ist ein Online-Programm, welches ein Gespräch mit einem Psychiater parodiert. Die Idee stammt ursprünglich von Joseph Weizenbaum, der 1964 eine Implementierung in BASIC vorstellte.

Schreibe einen Server, der wie ELIZA antwortet. Nutze eine Basisimplementierung.

Weitere Bibliotheken

WebCatch *

WebCatch ist ein Programm, welches an einer Startseite rekursiv alle Unterseiten abgeht.

Wo liegen Schwächen im Programm?

Leider ist das Programm so aufgebaut, dass es für jede Grafik eine neue Netzwerkverbindung aufbaut. Technisch ist das so umgesetzt, dass in ImageRetriever.java immer ein neuer Thread gestartet wird. Bei 40 gefundenen Bildern also 40 offene Verbindungen. Somit tröpfeln die Grafiken nur so rein, und das Laden der wichtigen HTM-Quellen wird verzögert.

Modifiziere das Programm so weit, dass es alle Bilder erst in einer Datenstruktur sammelt und dann nach einem Signal die Bilder hintereinander liest. Es sollen also erst alle HMTL-Dokumente auf der sicheren Seite sein und anschließend die meist unwichtigen Bildchen. Liste die gefundenen Links auf dem Bildschirm auf.