socket_recv
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_recv — Отримує дані з приєднаного сокету
Опис
socket_recv( Socket $socket, ?string &$data, int $length, int $flags): int|false
Функцияsocket_recv() отримує length
байт даних у буфер data
из сокетаsocket
функцияsocket_recv() може бути використана для отримання даних із приєднаних сокетів. Додатково, один або більше прапорів можуть бути вказані для зміни поведінки функції.
Параметрdata
передається за посиланням, так що він має бути вказаний у вигляді змінної у списку аргументів. Дані, прочитані із сокету socket
функцією socket_recv(), будуть повернуті у параметрі data
Список параметрів
socket
Параметрsocket
має бути екземпляром Socket, попередньо створеним за допомогою функції socket_create().
data
Отримані дані будуть передані до змінної, вказаної у параметрі data
. Якщо відбувається помилка, якщо з'єднання скинуто, або дані недоступні, параметр data
будет установлен в**null
**
length
Доlength
байт буде отримано з віддаленого хоста.
flags
Значение параметраflags
може бути будь-якою комбінацією наступних прапорів, з'єднаних за допомогою бінарного оператора OR (
Possible values forflags
Флаг | Опис |
---|---|
MSG_OOB | Обробляти позасмугові (out-of-band) дані. |
MSG_PEEK | Отримувати дані з початку черги отримання без видалення їх із черги. |
MSG_WAITALL | Функція блокуватиме виконання скрипту доти, доки як мінімум length байт не буде отримано. Проте, якщо отриманий сигнал або віддалений хост від'єднався, функція може повернути менше даних. |
MSG_DONTWAIT | Якщо цей прапор встановлений, то функція повернеться навіть у тому випадку, якщо вона зазвичай блокувала виконання скрипта. |
Значення, що повертаються
socket_recv() повертає кількість отриманих байтів або false
у разі виникнення помилки. Фактичний код помилки може бути отриманий за допомогою функції socket_last_error(). Цей код помилки може бути переданий функції socket_strerror() для отримання текстового опису помилки.
список змін
Версия | Опис |
---|---|
8.0.0 | socket тепер екземпляр класу Socket; раніше був ресурсом (resource). |
Приклади
Приклад #1 Приклад використання socket_recv()****
Цей приклад - просто варіант першого прикладу статті Приклади с использованиемsocket_recv()
Loading...
Приклад вище виведе щось на зразок такого:
<h2>Соединение TCP/IP</h2>
OK.
Попытка соединиться с хостом '208.77.188.166' on port '80'...OK.
Отправка запроса HTTP HEAD...OK.
Получение ответа:
Прочитано 123 байта из функции socket_recv(). Закрываем сокет...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
OK.