Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reta programado / Fari forajn konektojn / Exercises / Sendu kaj ricevu

Solvo: Sendu kaj ricevu

Jen ebla solvo de la tasko.

Kodo

my $conn = IO::Socket::INET.new(:host('example.com'), :port(80));

$conn.print("HEAD / HTTP/1.0\r\nHost: example.com\r\n\r\n");
my $response = $conn.recv;

$conn.close;
say $response.lines.first;

🦋 Vi povas trovi la fontkodon en la dosiero send-and-receive.raku.

Eligo

HTTP/1.1 200 OK

Komentoj

  1. .print sendas la peton; la protokolaj linioj finiĝas per \r\n. Peto HEAD petas de la servilo nur la statusan linion kaj la kapojn, do la respondo estas malgranda.

  2. .recv legas la respondon, kaj .lines.first prenas ĝian unuan linion — la statusan linion de HTTP.

Kursa navigado

Sendu kaj ricevu   |   Simpla HTTP-servilo