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.0socket тепер екземпляр класу 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.