socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recvfrom — Отримує дані із сокету, незалежно від того, під'єднаний він чи ні

Опис

socket_recvfrom(    Socket $socket,    string &$data,    int $length,    int $flags,    string &$address,    int &$port = null): int|false

Функцияsocket_recvfrom() отримує length байт даних у dataиз адресаaddressна портуport (якщо сокет не типу AF_UNIX) використовуючи сокет socketФункцияsocket_recvfrom() може бути використана для отримання даних як з підключених, так і з не підключених сокетів. Додатково один або більше прапорів можуть бути вказані для того, щоб змінити поведінку функції.

Параметри addressиport повинні бути передані за посиланням. Якщо сокет не орієнтований на з'єднання, address має бути встановлена ​​як адреса інтернет-протоколу віддаленого хоста, або як шлях до сокету UNIX. Якщо сокет не орієнтований на з'єднання, address повинен бути **null**Дополнительно,port повинен містити порт дистанційного хоста для не підключених сокетів типу AF_INET і AF_INET6

Зауваження: Ця функція безпечна для обробки даних у двійковій формі.

Список параметрів

socket

Параметрsocket має бути екземпляром Socket, попередньо створеним за допомогою функції socket_create().

data

Отримані дані будуть передані до змінної, вказаної за допомогою параметра data

length

З віддаленого хоста буде отримано до lengthбайт.

flags

Значение параметраflags може бути будь-якою комбінацією наступних прапорів, об'єднаних за допомогою бінарного оператора OR ( ) operator.

Можливі значення для параметра flags

ФлагОпис
MSG_OOBОбробляти позасмугові (out-of-band) дані.
MSG_PEEKОтримувати дані із початку черги, не видаляючи їх.
MSG_WAITALLБлокувати виконання скрипту доти, доки як мінімум length не буде отримано. Однак, якщо буде отримано сигнал або віддалений хост від'єднається, функція може повернути менше даних.
MSG_DONTWAITЯкщо цей прапор встановлений, функція повернеться навіть якщо зазвичай блокуватиме виконання скрипта.

address

Якщо сокет типу AF_UNIX address - Це шлях до файлу. В іншому випадку, для непід'єднаних сокетів, параметр address - це IP-адреса, віддаленого хоста, або **null**якщо сокет орієнтований на з'єднання.

port

Цей аргумент застосовний тільки до сокетів AF_INET і AF_INET6, та вказує віддалений порт, з якого будуть отримані дані. Якщо сокет орієнтований на з'єднання, portбудет**null**

Значення, що повертаються

socket_recvfrom() повертає кількість отриманих байт або false, якщо сталася помилка. Фактичний код помилки можна отримати за допомогою виклику функції socket_last_error(). Цей код помилки може бути переданий функції socket_strerror() для отримання текстового опису помилки.

список змін

ВерсияОпис
8.0.0socket тепер екземпляр класу Socket; раніше був ресурсом (resource).

Приклади

Приклад #1 Приклад використання socket_recvfrom()****

Loading...

Цей приклад відкриє UDP-сокет на порту 1223 за адресою 127.0.0.1 та виведе максимум 12 символів, отриманих з віддаленого хоста.

Дивіться також

  • socket_recv() - Отримує дані із приєднаного сокету
  • socket_send() - Надсилає дані в приєднаний сокет
  • socket_sendto() - Надсилає повідомлення до сокету, незалежно від того, під'єднаний він чи ні
  • socket_create() - створює сокет (кінцеву точку для обміну інформацією)