Socket Hellow word

1. Сокет - это для связи файлов.
2. Обязательно один файл слушает, а другой отправляет.
3. Самое простое - это сервер. Обычный сервер. Например: https://chajnik.ru
Он слушает 80-й порт
Что такое порт? - это циферки в конце адреса страницы. Например: https://chajnik.ru:80
4. Теперь нам осталось написать клиента:

4.1 php:

<?php

$host = "chajnik.ru";
$port = 80;

// Открываем сокет с таймаутом 30 секунд
$fp = fsockopen($host, $port, $errno, $errstr, 30);

if (!$fp) {
echo "Ошибка: $errstr ($errno)<br>\n";
} else {
// Формируем HTTP-запрос (обратите внимание на \r\n - это стандарт HTTP)
$request = "GET / HTTP/1.0\r\n";
$request .= "Host: $host\r\n";
$request .= "Connection: Close\r\n\r\n";

// Отправляем запрос
fwrite($fp, $request);

// Читаем ответ построчно, пока сокет не закроется
$response = '';
while (!feof($fp)) {
$response .= fgets($fp, 1024);
}

// Закрываем сокет
fclose($fp);

// Выводим результат
echo $response;
}

?>

==========

4.2 Perl:

#!/usr/bin/perl

use Socket;

$host="chajnik.ru";
$port="80";

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);

connect(SOCK, $paddr);
#send (SOCK, "GET / HTTP/1.0\n\n", 0);
send (SOCK, "GET / HTTP/1.0\nHOST:$host\n\n", 0);

@data=<SOCK>;

close(SOCK);

print @data;

===========

5. Посмотреть? Тоже пожалуйста:
https://chajnik.ru/soket.php

Есть и заголовки и тело ответа:

HTTP/1.0 200 OK
Connection: close
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
Content-Type: text/html; charset=utf-8
Content-Language: ru
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Date: Sun, 29 Mar 2026 17:42:27 GMT
Server: LiteSpeed
Vary: User-Agent

<!DOCTYPE html>
<!--[if IEMobile 7.....

==============

7. Что плохо:

Все эти скрипты работают только по протоколу HTTP (без шифрования). Если вы попробуете подключиться по сокету к https://yandex.ru (порт 443), сервер пришлет вам бинарные данные для начала TLS-рукопожатия (шифрования). Чтобы прочитать сайт через сокеты по HTTPS, вам пришлось бы написать в коде реализацию всего криптографического протокола SSL/TLS.

Именно поэтому в реальной жизни используют cURL. Он внутри себя использует сокеты, но берет на себя всю черновую работу по шифрованию (HTTPS), сжатию данных (Gzip) и правильному формированию заголовков.

Итог: Сокеты работает на самом нижнем "разумном" уровне для задачи получения контента по сети в языке высокого уровня. Ниже — только битва с операционной системой и проводами.

8. При перепечатке ссылка на источник: https://chajnik.ru/socket обязательна

Компьютер: