1
0
mirror of https://github.com/php/doc-ru.git synced 2026-04-25 16:28:19 +02:00
Files
archived-doc-ru/reference/sockets/functions/socket-set-nonblock.xml
T
Sergey Panteleev 6d43fd64d7 Исправление форматирования
[skip-spellcheck]
[skip-lint]
2022-12-27 03:42:36 +03:00

127 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14dc7c47365f2b71f6c907a5ba5bccf42534d5a9 Maintainer: countzero Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.socket-set-nonblock" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>socket_set_nonblock</refname>
<refpurpose>Устанавливает неблокирующий режим для файлового дескриптора fd </refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>socket_set_nonblock</methodname>
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
</methodsynopsis>
<para>
Функция <function>socket_set_nonblock</function> устанавливает флаг
<constant>O_NONBLOCK</constant> на сокете, указанном в параметре
<parameter>socket</parameter>.
</para>
<para>
Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на
неблокирующем сокете, скрипт не будет приостанавливать своё исполнение до получения сигнала или
возможности выполнить операцию. Если выполняемая операция должна привести к блокированию
выполнения скрипта, то вместо этого вызываемая функция возвратит ошибку.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>socket</parameter></term>
<listitem>
<para>
Экземпляр <classname>Socket</classname>, созданный при помощи функции <function>socket_create</function>
или <function>socket_accept</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&sockets.changelog.socket-param;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>socket_set_nonblock</function></title>
<programlisting role="php">
<![CDATA[
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
]]>
</programlisting>
<para>
Этот пример создаёт слушающий сокет на всех интерфейсах на порту 1223 и
устанавливает сокет в режим <constant>O_NONBLOCK</constant>.
<function>socket_accept</function> будет немедленно возвращать ошибку, если
только именно в этот момент нету ожидающего соединения.
</para>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_set_block</function></member>
<member><function>socket_set_option</function></member>
<member><function>stream_set_blocking</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->