Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio retialis / Servitor HTTP simplex / Exercises / Via litteris maioribus
Solutio: Via litteris maioribus
Ecce solutio possibilis huius exercitationis.
Codex
my $listener = IO::Socket::INET.new(
:listen,
:localhost('127.0.0.1'),
:localport(8080),
);
loop {
my $conn = $listener.accept;
my $request = $conn.recv;
# "GET /hello HTTP/1.0" — via secundum verbum est; abice '/' praecedens
my $reply = $request.lines.first.words[1].substr(1).uc;
$conn.print("HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n$reply\n");
$conn.close;
}🦋 Inveni codicem fontem in archivo text-response.raku.
Exitus
HELLOCommentarii
.recvpetitionem legit. Prima linea eius estGET /hello HTTP/1.0;.words[1]/helloeligit, et.substr(1)virgulam praecedentem abicit uthellorelinquat..ucillud in maiusculas vertit, et illud corpus responsi fit. Responsum nunc ex eo pendet quod cliens poposcit — servitor petitionem tractat, non catenam fixam reddit.Totus blocus accipe-lege-responde intra
loopsedet, itaque servitor unam petitionem post alteram respondet pro eo quod post primam consistit. Siste eum per Ctrl-C.