Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Web-Programmierung / Entfernte Verbindungen herstellen / Exercises / Verbinden Sie sich mit einem Host
Lösung: Verbinden Sie sich mit einem Host
Hier ist eine mögliche Lösung der Aufgabe.
Code
my $host = 'example.com';
if try IO::Socket::INET.new(:host($host), :port(80)) -> $conn {
say "connected to $host";
$conn.close;
}
else {
say "could not connect to $host";
}🦋 Du findest den Quellcode in der Datei connect-to-host.raku.
Ausgabe
connected to example.comKommentare
IO::Socket::INET.new(:host, :port)öffnet die Verbindung unverzüglich und wirft, wenn der Host unerreichbar ist.Es in
tryzu hüllen macht aus dieser Ausnahme einNilstatt eines Absturzes. Dasif … -> $connbindet den Socket, wenn die Verbindung gelingt, und führt denelse-Zweig aus, wenn nicht — der robuste Weg, eine Verbindung zu versuchen.Um den
else-Zweig in Aktion zu sehen, ändern Sie$hostin einen Namen, den es nicht gibt, etwa'example.comp'. Die DNS-Auflösung scheitert dann — ohne dastrybekämen Sie einen Fehler wieFailed to resolve host name 'example.comp'—, doch hier macht dastryeinNildaraus, das Programm gibt also ruhigcould not connect to example.compaus.
Kursnavigation
← Verbinden Sie sich mit einem Host | Senden und empfangen Sie →