Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Tīmekļa programmēšana / Vienkāršs HTTP serveris
Savienojumu klausīšanās
Lai darbotos kā serveris, izveidojiet ligzdu
klausīšanās režīmā ar argumentu :listen,
norādot adresi un portu, ko klausīties:
my $listener = IO::Socket::INET.new(
:listen,
:localhost('127.0.0.1'),
:localport(8080),
);:localhost('127.0.0.1') klausās jūsu paša mašīnā, un
:localport(8080) ir ports, kuram klientiem jāpieslēdzas.
Ligzda tagad gaida, bet neviens klients vēl nav atnācis.
Lai paņemtu nākamo ienākošo savienojumu, izsauciet
.accept. Tas bloķē, līdz klients
pieslēdzas, un tad atgriež svaigu ligzdu, kas pārstāv šo vienu
sarunu:
my $conn = $listener.accept;
say 'a client connected';$listener turpina klausīties nākamos klientus, kamēr
$conn ir jūsu kanāls sarunai ar šo konkrēto. Īsts serveris
.accept izsauc ciklā, apkalpojot katru klientu, kad tas
ierodas.
Šie piemēri darbojas jūsu paša mašīnā; pieslēdzieties tiem no pārlūka vai citas programmas adresē
127.0.0.1:8080.
Tātad serveris ir vienkārši apgriezta ligzda: tā vietā, lai ar
:host/:port zvanītu ārā, jūs dodat
:listen kopā ar
:localhost/:localport, lai gaidītu ienākošos
zvanus.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Vienkāršs HTTP serveris | Viktorīna — Klausīšanās →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumu.