Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reta programado / Simpla HTTP-servilo
Aŭskulti konektojn
Por agi kiel servilo, kreu kontaktskatolon en
aŭskulta reĝimo per la argumento :listen,
donante la adreson kaj pordon, ĉe kiuj aŭskulti:
my $listener = IO::Socket::INET.new(
:listen,
:localhost('127.0.0.1'),
:localport(8080),
);:localhost('127.0.0.1') aŭskultas sur via propra maŝino,
kaj :localport(8080) estas la pordo, al kiu klientoj devas
konektiĝi. La kontaktskatolo nun atendas, sed ankoraŭ neniu kliento
alvenis.
Por preni la sekvan envenantan konekton, voku .accept.
Ĝi blokas, ĝis kliento konektiĝas, poste redonas freŝan
kontaktskatolon reprezentantan tiun unu interparolon:
my $conn = $listener.accept;
say 'a client connected';La $listener daŭre aŭskultas por pliaj klientoj, dum
$conn estas via kanalo por paroli kun ĉi tiu aparta. Vera
servilo vokas .accept en buklo, traktante ĉiun klienton laŭ
ĝia alveno.
Ĉi tiuj ekzemploj plenumiĝas sur via propra maŝino; konektiĝu al ili el retumilo aŭ alia programo ĉe
127.0.0.1:8080.
Do servilo estas simple kontaktskatolo turnita: anstataŭ
:host/:port por elvoki eksteren, vi donas
:listen kun :localhost/:localport
por atendi envenantajn vokojn.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Simpla HTTP-servilo | Kvizo — Aŭskultado →
💪 Aŭ iru rekte al la ekzerco de
ĉi tiu sekcio.