05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

234 4 Gr<strong>und</strong>lagen der Socket-Programmierung<br />

65–82<br />

84<br />

Sobald die gewünschte TCP-Verbindung steht, lesen wir die aktuelle Zeit vom<br />

Timeserver <strong>und</strong> geben sie auf der Konsole aus. Danach schließen wir den<br />

Socket wieder <strong>und</strong> treten in den nächsten Schleifendurchgang ein.<br />

Sobald alle Elemente der Ergebnisliste abgearbeitet sind, geben wir <strong>mit</strong><br />

freeaddrinfo() die von getaddrinfo() allozierte Liste wieder frei.<br />

Wir testen nun unser Programm an den beiden Rechnersystemen www.<br />

uni-augsburg.de <strong>und</strong> www.nasa.gov:<br />

$ ./hostaddr www.uni-augsburg.de www.nasa.gov<br />

Rechner www.uni-augsburg.de (srv01.rz.uni-augsburg.de) ...<br />

137.250.121.221 -> Zeit: Sat Jun 18 17:08:57 2005<br />

Rechner www.nasa.gov (www.nasa.gov) ...<br />

213.200.94.68 -> connect(): Connection refused<br />

212.162.1.196 -> connect(): Connection refused<br />

Zunächst fällt auf, daß dem IP-Namen www.nasa.gov, vermutlich aus Gründen<br />

der Red<strong>und</strong>anz, zwei unterschiedlich IP-Adressen zugeordnet sind. Die beiden<br />

Adressen können beide zum selben Rechnersystem gehören (etwa durch<br />

zwei Netzwerkkarten), wahrscheinlicher ist aber, daß die NASA die angebotenen<br />

Informationen zur Erhöhung der Ausfallsicherheit auf zwei verschiedenen<br />

Servern identisch vorhält. Die getaddrinfo()-Funktion liefert also in<br />

einem solchen Fall tatsächlich eine Liste von Ergebnissen, die von unserem<br />

Testprogramm dann der Reihe nach abgearbeitet werden. Auf den beiden<br />

Servern der NASA ist allerdings der Timeservice deaktiviert. Aber immerhin<br />

liefert der Webserver der Universität Augsburg über das Time-Protokoll die<br />

aktuelle Uhrzeit zurück. Bei diesem Webserver unterscheidet sich jedoch der<br />

über die Kommandozeile angegebene IP-Name www.uni-augsburg.de vom kanonischen<br />

Rechnername srv01.rz.uni-augsburg.de des Systems. Beim Namen<br />

www.uni-augsburg.de handelt es sich also lediglich um einen DNS-Alias für<br />

den tatsächlichen FQDN srv01.rz.uni-augsburg.de.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!