stream_socket_serverСоздаёт интернет-сокет или доменный сокет Unix
&reftitle.description;
resourcefalsestream_socket_serverstringaddressinterror_code&null;stringerror_message&null;intflagsSTREAM_SERVER_BIND | STREAM_SERVER_LISTENresourcenullcontext&null;
Создаёт сокет потока или датаграммы на указанном
address.
Эта функция только создаёт сокет. Чтобы начать принимать соединения
используйте stream_socket_accept.
&reftitle.parameters;
address
Тип создаваемого сокета определяется по транспорту, указанному с
использованием стандартного форматирования URL: transport://target.
Для доменных сокетов интернета (AF_INET), таких как TCP и UDP, часть
target параметра
remote_socket должна состоять из имени хоста
или IP-адреса с последующим двоеточием и номера порта. Для доменных сокетов
Unix часть target должна указывать
на файл сокета в файловой системе.
В зависимости от окружения, доменные сокеты Unix могут быть недоступны.
Список доступных транспортов может быть получен при помощи функции
stream_get_transports. Смотрите
для списка встроенных транспортов.
error_code
Если необязательные аргументы error_code и error_message
присутствуют, то они будут установлены для указания действительного уровня
системной ошибки, которая происходит при системных вызовах socket(),
bind() и listen(). Если значение,
возвращаемое в error_code, равно
0 и функция возвратила &false;, это означает,
что ошибка произошла до вызова bind().
Скорее всего это произошло из-за проблемы инициализации сокета.
Примите во внимание, что аргументы error_code и
error_message должны всегда передаваться по ссылке.
error_message
Смотрите описание параметра error_code.
flags
Битовая маска, которая может быть установлена в любую комбинацию флагов
для создания сокета.
Для UDP-сокетов вы должны использовать STREAM_SERVER_BIND в
качестве параметра flags.
context
&reftitle.returnvalues;
Возвращает созданный поток или &false; в случае возникновения ошибки.
&reftitle.changelog;
&Version;&Description;8.0.0
Параметр context теперь допускает значение null.
&reftitle.examples;
Пример использования серверных сокетов TCP
\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'Локальное время ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
]]>
Пример ниже показывает, как работать в качестве сервера времени, который может отвечать
на запросы времени, как показано в примере функции stream_socket_client.
Большинство систем требуют доступа с правами root для создания серверного сокета на порту
ниже, чем 1024.
Пример использования серверных сокетов UDP
]]>
&reftitle.notes;
&ipv6.brackets;
&reftitle.seealso;
stream_socket_clientstream_set_blockingstream_set_timeoutfgetsfgetssfwritefclosefeofМодуль curl