fsockopen Открывает соединение с сокетом интернет- или Unix-домена &reftitle.description; resourcefalsefsockopen stringhostname intport-1 interror_code&null; stringerror_message&null; floatnulltimeout&null; Функция устанавливает соединение с сокетом ресурса hostname. PHP поддерживает целевые ресурсы в интернет- и Unix-доменах так, как описывает «». Список транспортов, которые поддерживает PHP, также возвращает функция stream_get_transports. По умолчанию функция откроет сокет в блокирующем режиме. Сокет переключают в неблокирующий режим функцией stream_set_blocking. Функция stream_socket_client работает аналогично, но даёт более богатый набор настроек соединения, который включает поддержку неблокирующих соединений и возможность предоставить потоковый контекст. &reftitle.parameters; hostname Разрешается добавлять к имени хоста hostname префиксы ssl:// или tls:// и использовать при подключении к удалённому хосту клиентские SSL- или TLS-соединения поверх стека протоколов TCP/IP, если установили поддержку библиотеки OpenSSL. port Номер порта. Номер порта разрешается не указывать или пропустить за счёт значения -1 для протоколов, которые не используют порты, например unix://. error_code Функция заполнит параметр номером ошибки системного уровня, которая возникла при вызове функции connect(), если аргумент указали при вызове функции. Значение 0, которое вернулось в параметр error_code, и значение &false;, которое вернула функция, указывают, что ошибка возникла до вызова функции connect(). В большей части случаев это связано с ошибкой инициализации сокета. error_message Сообщение об ошибке в виде строки. timeout Время ожидания соединения в секундах. Функция будет использовать настройку default_socket_timeout из файла &php.ini;, если значение равно &null;. Если требуется установить время ожидания для чтения или записи данных через сокет, вызывают функцию stream_set_timeout, поскольку параметр timeout функции fsockopen ограничивает только время установки соединения с сокетом. &reftitle.returnvalues; Функция fsockopen возвращает файловый указатель, который можно использовать с другими функциями, которые работают с файлами (например, fgets, fgetss, fwrite, fclose и feof). Функция возвращает &false;, если вызов завершится ошибкой. &reftitle.errors; Функция выдаёт ошибку уровня E_WARNING, если в параметр hostname передали недопустимый домен. &reftitle.changelog; &Version; &Description; 8.0.0 Параметр timeout теперь принимает значение null. &reftitle.examples; Пример использования функции <function>fsockopen</function> \n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> ]]> Пример установки UDP-соединения Пример показывает, как получить день и время от UDP-службы daytime (которая работает на порте номер 13) на текущей машине. \n"; } else { fwrite($fp, "\n"); echo fread($fp, 26); fclose($fp); } ?> ]]> &reftitle.notes; В зависимости от окружения, Unix-домен или время ожидания установки подключения могут оказаться недоступными. Иногда UDP-сокеты получают статус открытых, даже если удалённый хост недоступен. Ошибка становится очевидной только при чтении или записи данных в сокет или из него. Причина этого заключается в том, что протокол UDP передаёт данные без установки соединения, а это означает, что операционная система не устанавливает и не держит соединение с сокетом, пока не начнётся передача данных. &ipv6.brackets; &reftitle.seealso; pfsockopen stream_socket_client stream_set_blocking stream_set_timeout fgets fgetss fwrite fclose feof socket_connect Модуль Curl