stream_socket_client Открывает соединение с интернет-сокетом или с доменным Unix-сокетом &reftitle.description; resourcefalsestream_socket_client stringaddress interror_code&null; stringerror_message&null; floatnulltimeout&null; intflagsSTREAM_CLIENT_CONNECT resourcenullcontext&null; Функция начинает соединение потока или датаграммы с удалённым сокетом, который указали в параметре address. Тип создаваемого сокета определяется по транспорту, который указали через стандартное форматирование URL-адреса: transport://target. Для сокетов интернет-домена (AF_INET) наподобие TCP и UDP часть target параметра address должна состоять из имени хоста или IP-адреса, за которым следует двоеточие и номер порта. Для доменных сокетов Unix часть target должна указывать на файл сокета в файловой системе. По умолчанию поток будет открыт в блокирующем режиме. Можно переключить поток в неблокирующий режим функцией stream_set_blocking. &reftitle.parameters; address Адрес удалённого сокета для соединения. error_code При сбое соединения функция присвоит параметру номер системной ошибки. error_message При сбое соединения функция присвоит параметру сообщение о системной ошибке. timeout Число секунд, в течение которых должно произойти время ожидания системного вызова connect(). По умолчанию используется значение директивы default_socket_timeout. Этот параметр применяется, только если попытки асинхронного подключения не предпринимаются. Чтобы указать время ожидания для чтения или записи данных через сокет, вызывают функцию stream_set_timeout, поскольку параметр timeout применяется только при создании соединения через сокет. flags Поле битовой маски, которое может принимать значение любой комбинации флагов соединения. Пока набор флагов соединения ограничен следующими значениями: STREAM_CLIENT_CONNECT (по умолчанию), STREAM_CLIENT_ASYNC_CONNECT и STREAM_CLIENT_PERSISTENT. context Допустимый ресурс контекста, который создали функцией stream_context_create. &reftitle.returnvalues; В случае успешного выполнения функция возвращает ресурс потока, который можно использовать с другими файловыми функциями (например, fgets, fgetss, fwrite, fclose и feof); если возникла ошибка, функция возвращает &false;. &reftitle.errors; В случае неудачного вызова функция заполнит параметры error_code и error_message системной ошибкой, которая произошла при системном вызове connect(). Если значение, которое вернулось в параметре error_code, равно 0 и функция вернула значение &false;, это означает, что ошибка произошла до вызова connect(). Это произошло, вероятно, из-за проблемы инициализации сокета. Примите во внимание, что параметры error_code и error_message каждый раз будут передаваться по ссылке. &reftitle.changelog; &Version; &Description; 8.0.0 Параметры timeout и context теперь принимают значение null. &reftitle.examples; Пример использования функции <function>stream_socket_client</function> \n"; } else { fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 1024); } fclose($fp); } ?> ]]> Пример UDP-соединения Получения дня и времени от UDP-службы daytime (порт 13) на localhost. \n"; } else { fwrite($fp, "\n"); echo fread($fp, 26); fclose($fp); } ?> ]]> &reftitle.notes; UDP-сокеты иногда открываются без ошибки, даже если удалённый хост недоступен. Ошибка станет заметной, только когда данные будут читать из сокета или писать данные в сокет. Причина этого в том, что UDP — протокол без соединения, что означает, что операционная система не пытается установить соединение с сокетом, пока ей в действительности не нужно отправить или получить данные. &ipv6.brackets; В зависимости от окружения Unix-домены или произвольное время ожидания соединения могут быть недоступны. Список доступных транспортов можно получить функцией stream_get_transports. Смотрите список встроенных транспортов на странице . &reftitle.seealso; stream_socket_server stream_set_blocking stream_set_timeout stream_select fgets fgetss fwrite fclose feof