Errata zu Band 1
-
S. 7, Abbildung 1.2: Die Abbildungsbeschriftung ist falsch. Es muss heißen “Drei Subnetze, die untereinander verbunden sind; Nachrichten von
10.136.117.77
an192.168.99.67
werden aus «Subnetz 1» über91.89.194.5
oder91.89.194.6
in das «Subnetz 3» gerouted.” -
S. 30, Aktivitätsschritt 1.3 (dig), 2. Absatz: “Aus der Antwort von
dig
[…]” statt “Aus der Antwort vonnslookup
[…]”. Der Rest der Beschreibung des Aktivitätsschritts ist aber korrekt. -
S. 44,
ifconfig
in Aktivitätsschritten 1.21-22 (UNIX (BSD, Linux, macOS)) und in Abbildungen 1.20-23:- … kennt nicht auf jeder Plattform die Option
-l
(vorhanden unter BSD-Abkömmlingen wie NetBSD, FreeBSD und macOS). Am ehesten vergleichbar ist unter Linuxifconfig -s
: Dies zeigt eine verkürte Liste mit Informationen zu den gerade verfügbaren Netzwerk Interfaces. - … ist unter einigen Linux-Distributionen nicht mehr standardmäßig installiert. Es ist zumeist möglich,
ifconfig
nachzuinstallieren:- Debian-basierte Linux-Distributionen wie Ubuntu:
sudo apt update && sudo apt install net-tools
(mit Super User (su) Rechten das Paketnet-tools
, dasifconfig
enthält installieren, nachdem die Paketquellen aktualisiert wurden. - Red Hat basierte Linux-Distributionen wie Fedora:
sudo dnf install net-tools
- bzw. unter älteren Red Hat Linux-Distributionen:
sudo yum install net-tools
- unter Arch Linux basierten Distributionen wie Manjaro:
sudo pacman -S net-tools
- Debian-basierte Linux-Distributionen wie Ubuntu:
- … ist für Linux abgekündigt. Stattdessen kann das Kommando
ip
aus dem Paketiproute2
verwendet werden (die Option--brief
bzw.-br
sorgt für eine kompakte Ausgabe der relevantesten Informationen und kann auch entfallen):ip --brief address show
(oder kürzer:ip -br a
) stattifconfig -l
bzw.ifconfig -s
)ip --brief address show eth0
(oder kürzerip -br a s eth0
) stattifconfig eth0
)
- … kennt nicht auf jeder Plattform die Option
-
S. 47, 1. Absatz, letzter Satz: Tippfehler, richtig ist: “Sockets funktionieren immer bidirektional, d. h. über einen Socket können Daten sowohl versendet als auch empfangen werden.”
-
S. 50, Abschnitt 2.2, Aufzählungspunkt
DatagramPacket
: Formatierungsanweisung ("/type") versehentlich im Text gelandet. Richtig müsste es heißen: “Erzeugt ein Datagramm zum Senden vonlength
Bytes, die inbuf
gespeichert sind, an einenDatagramSocket
anaddress
undport
(length <= buf.length
).” -
S. 57, Aktivitätsschritt 2.3: Der Link hat sich geändert (https://docs.oracle.com/javase/7/docs/api/java/net/DatagramPacket.html#setSocketAddress(java.net.SocketAddress)).
-
S. 163, Listing 5.10, Zeile 13: falscher Name der lokalen Variable. Richtig ist
task
statttextMessage
. -
S. 178, Listing 6.1: Die Variable
message
wird sowohl für eine Variable vom TypString
(Deklaration Zeile 2), als auch für eine vom TypMqttMessage
(Deklaration Zeile 9) verwendet. Das funktioniert nicht. Eine der beiden Variablen muss umbenannt werden. Im folgenden Beispiel wurde dieString
-Variable vonmessage
zucontent
umbenannt.MqttClient client = null; String content = "..."; String topic = "4761"; String broker = "tcp://localhost:1883"; String clientId = MqttClient.generateClientId(); try { client = new MqttClient(broker, clientId); client.connect(); MqttMessage message = new MqttMessage(); message.setPayload(content.getBytes()); client.publish(topic, message); client.disconnect(); } catch (MqttException e) { // ... }
-
S. 216, Tabelle 7.3: HTTP-Response Code 304 und 307 sind vertauscht. Korrekt ist die folgende Zuordnung:
-
S. 246, Aktivitätsschritt 8.2: Sollte der Tomcat-Server auf einem anderen Rechner oder in einem Container wie Docker laufen, erfolgt der Zugriff vom Client mit einer anderen IP-Adresse als
localhost
bzw.127.0.0.1
. In dem Fall wird der Zugriff auf die Manager App vom Tomcat-Server mit dem Response-Code403 Access Denied
abgewiesen.Um das Problem zu lösen, muss eine Datei geändert werden, in der die Zugriffs-Policy für die Manager App hinterlegt ist:
apache-tomcat-9.X.Y/webapps/manager/META-INF/context.xml
. Dort ist u.a. der folgende Eintrag enthalten:Statt
XXX
muss ein regulärer Ausdruck eingetragen werden, der auf die IP-Adresse des Clients passt. Zur Not geht.*
(also beliebig viele beliebige Zeichen). Das würde aber auch den Zugriff von fremden Rechnern erlauben, was man normalerweise verhindern würde.Das ist auch beim Arbeiten mit Chrome OS zu beachten. Dort wird der Tomcat-Server über Crostini in einem LXC Container gestartet. Der Zugriff auf dessen Adresse
penguin.linux.test:8080
erfolgt über den Web-Browser, der von Chrome OS aus, also mit einer anderen IP-Adresse als der Crostini Container arbeitet. StattXXX
führt inapache-tomcat-9.X.Y/webapps/manager/META-INF/context.xml
der reguläre Ausdruck100\.115\.92\.\d+
zum Erfolg. -
S. 336 ECTS: European Credit Point Transfer System