Java. Netzwerkprogrammierung
506 Seiten
German
PDF
4.5

Java. Netzwerkprogrammierung

Java. Netzwerkprogrammierung

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Java Network Programming“ (4. Auflage, 2013) von Elliotte Rusty Harold ist ein klassischer Leitfaden zur Entwicklung von Netzwerkanwendungen in Java. Obwohl es bereits über zehn Jahre alt ist, bleibt das Buch für das Verständnis der grundlegenden Prinzipien der Netzwerkarbeit in Java relevant, insbesondere im Kontext der klassischen APIs (java.net). Der Autor, ein bekannter Experte für Java und XML, bietet eine tiefgehende Einführung in Sockets, URLs, HTTP, UDP und Multithreading und lässt dabei auch modernere Themen wie NIO (New I/O) nicht außer Acht.

Das Buch richtet sich an Entwickler, die bereits mit den Grundlagen von Java vertraut sind, und zielt darauf ab, nicht nur die Syntax zu vermitteln, sondern ein Verständnis dafür zu schaffen, wie Netzwerkprotokolle auf Codeebene funktionieren. Es ist kein Nachschlagewerk, sondern ein Lehrbuch mit vielen praktischen Beispielen.

Worum es in dem Buch geht

Das Buch deckt praktisch alle Aspekte der Netzwerkprogrammierung in Java ab, von den Grundlagen bis hin zu fortgeschrittenen Themen. Der Hauptinhalt ist in logische Blöcke unterteilt:

  • Grundlagen der Netzwerke: IP-Adressen, Ports, TCP- und UDP-Protokolle, OSI-Modell. Der Autor erklärt, wie Java diese Konzepte abstrahiert.
  • Arbeiten mit URLs und URIs: Die Klassen URL, URLConnection, HttpURLConnection. Parsen, Erstellen und Verarbeiten von Links, Arbeiten mit HTTP-Anfragen und -Antworten.
  • TCP-Sockets: Die Klassen Socket und ServerSocket. Schreiben von Client-Server-Anwendungen, Verarbeiten mehrerer Clients, Timeouts, Pufferung.
  • UDP-Sockets: Die Klassen DatagramSocket und DatagramPacket. Senden und Empfangen von Datagrammen, Broadcast.
  • Multithreading im Netzwerk: Erstellen von Multithread-Servern, Thread-Pools, Verarbeiten von konkurrierendem Zugriff auf Ressourcen.
  • NIO (New I/O): Channels, Buffers, Selectors. Nicht blockierende Ein-/Ausgabe für hochlastige Systeme.
  • Sicherheit: SSL/TLS, Authentifizierung, Verschlüsselung, Arbeiten mit gesicherten Verbindungen.
  • Anwendungsprotokolle: Beispiele für die Implementierung einfacher HTTP-Clients, SMTP, POP3, FTP.

Für wen ist dieses Buch geeignet?

Das Buch ist nützlich für:

  • Fortgeschrittene Java-Entwickler, die ihre Kenntnisse im Bereich der Netzwerkkommunikation vertiefen möchten.
  • Studenten und Programmieranfänger, die Java lernen und verstehen möchten, wie Netzwerkanwendungen „von innen“ funktionieren.
  • Entwickler, die von anderen Sprachen (z. B. C++ oder Python) zu Java wechseln und ihr Wissen über Netzwerk-APIs systematisieren müssen.
  • Softwarearchitekten, die verteilte Systeme entwerfen und die Feinheiten der Implementierung von Netzwerkprotokollen in Java verstehen möchten.

Was der Leser lernen wird

Nach der Lektüre des Buches wird der Leser in der Lage sein:

  • Sicher die Klassen Socket und ServerSocket zum Erstellen von TCP-Clients und -Servern zu verwenden.
  • Mit URLConnection und HttpURLConnection zu arbeiten, um HTTP-Anfragen (GET, POST, PUT, DELETE) durchzuführen.
  • Den Unterschied zwischen TCP und UDP zu verstehen und das geeignete Protokoll für eine bestimmte Aufgabe auszuwählen.
  • Multithread-Server unter Verwendung von Thread-Pools und Synchronisierung zu implementieren.
  • Java NIO zum Erstellen skalierbarer, nicht blockierender Anwendungen zu nutzen.
  • SSL/TLS für den sicheren Datenaustausch zu konfigurieren.
  • Eigene Implementierungen einfacher Protokolle zu schreiben (z. B. einen HTTP-Client ohne externe Bibliotheken).
  • Netzwerkanwendungen zu debuggen und typische Fehler (Timeouts, Verbindungsabbrüche) zu behandeln.

Stärken

Das Buch hat eine Reihe unbestreitbarer Vorzüge:

  • Tiefe und Systematik: Der Autor listet nicht nur API-Methoden auf, sondern erklärt, warum sie genau so funktionieren, und verweist dabei oft auf RFCs und Standards.

Empfehlungen