Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Веб-програмування / Віддалені з’єднання / Вправи / Надішліть і отримайте

Розв’язання: Надішліть і отримайте

Ось одне з можливих розв’язань задачі.

Код

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;

🦋 Знайдіть програму у файлі send-and-receive.raku.

Вивід

HTTP/1.1 200 OK

Коментарі

  1. .print надсилає запит; рядки протоколу закінчуються на \r\n. Запит HEAD просить у сервера лише рядок стану та заголовки, тож відповідь мала.

  2. .recv читає відповідь, а .lines.first бере її перший рядок — рядок стану HTTP.

Навігація курсом

Надішліть і отримайте   |   Простий HTTP-сервер