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.

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

/etc/services festgelegt, immer an Port 65000 auf eingehende Verbindungen<br />

wartet, erhält der Client eine vorübergehende Portnummer zugewiesen.<br />

Diese Portnummer, hier 32772, wechselt im Allgemeinen von Aufruf zu Aufruf.<br />

$ telnet 192.168.1.1 quiz<br />

Trying 192.168.1.1...<br />

Connected to 192.168.1.1.<br />

Escape character is ’^]’.<br />

Quizserver hört auf IP 192.168.1.1, Port 65000<br />

Quizclient kommt von IP 192.168.1.1, Port 32772<br />

Sie haben 20 Sek<strong>und</strong>en für die Antwort:<br />

Was ißt Sir Quickly am liebsten?<br />

Bratwurst<br />

Leider falsch, richtig ist Himbeerjoghurt<br />

Connection closed by foreign host.<br />

Anstatt über die IP-Adresse 192.168.1.1 können wir auch versuchen, uns<br />

über die Loopback-Adresse 127.0.0.1 <strong>mit</strong> unserem Server zu verbinden:<br />

$ telnet 127.0.0.1 quiz<br />

Trying 127.0.0.1...<br />

Connected to 127.0.0.1.<br />

Escape character is ’^]’.<br />

Quizserver hört auf IP 127.0.0.1, Port 65000<br />

Quizclient kommt von IP 127.0.0.1, Port 32773<br />

Sie haben 20 Sek<strong>und</strong>en für die Antwort:<br />

Was ißt Sir Quickly am liebsten?<br />

Himbeerjoghurt<br />

Die Antwort ist richtig. Gratulation.<br />

Connection closed by foreign host.<br />

Daß die Verbindung tatsächlich zustande kommt, liegt daran, daß der Internet<br />

Dæmon seine lokale IP-Adresse <strong>mit</strong> einer Wildcard an den Socket geb<strong>und</strong>en<br />

hat. Wie in Abschnitt 4.3.4 beschrieben, weist das Betriebssystem den<br />

Socket erst beim Zustandekommen einer Netzwerkverbindung eine passende<br />

IP-Adresse zu, in diesem Falle die Loopback-Adresse.<br />

4.3.11 Multiplexing von Netzwerkverbindungen<br />

In der Praxis kommt es häufig vor, daß ein Programm, meist ein Server, zur<br />

gleichen Zeit mehrere <strong>Sockets</strong> bedienen soll. Als bekannte Beispiele können<br />

moderne, <strong>SSL</strong>-fähige Webserver dienen, die gleichzeitig an Port 80 (http) <strong>und</strong><br />

Port 443 (https) auf eingehende Verbindungen warten. Würde der Webserver<br />

nun in einem accept()-Aufruf für Port 80 blockieren, so könnte er natürlich

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!