-
Notifications
You must be signed in to change notification settings - Fork 70
/
socket-read.xml
146 lines (140 loc) · 5.45 KB
/
socket-read.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14dc7c47365f2b71f6c907a5ba5bccf42534d5a9 Maintainer: countzero Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.socket-read" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>socket_read</refname>
<refpurpose>Считывает из сокета максимальное количество байтов</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>socket_read</methodname>
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
<methodparam><type>int</type><parameter>length</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>PHP_BINARY_READ</constant></initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>socket_read</function> считывает данные из сокета, который указали
в параметре <parameter>socket</parameter> экземпляром класса <classname>Socket</classname>,
который создали функциями <function>socket_create</function>
или <function>socket_accept</function>.
</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>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
Параметр <parameter>length</parameter> указывает максимальное количество байтов,
которое считает функция. Другой способ закончить считывание —
указать символы <constant>\r</constant>, <constant>\n</constant>
или <constant>\0</constant> (в зависимости от параметра
<parameter>mode</parameter>, смотрите ниже).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Необязательный параметр <parameter>mode</parameter> — именованная константа:
<itemizedlist>
<listitem>
<simpara>
<constant>PHP_BINARY_READ</constant> (по умолчанию) — вызывает системную функцию
<literal>recv()</literal>. Режим безопасен при чтении двоичных данных.
</simpara>
</listitem>
<listitem>
<simpara>
<constant>PHP_NORMAL_READ</constant> — останавливает считывание
на символах <literal>\n</literal> или <literal>\r</literal>.
</simpara>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция <function>socket_read</function> возвращает данные в виде строки в случае успешного выполнения,
или &false;, если возникла ошибка (включая случай, когда удалённый хост закрыл
соединение). Код ошибки возвращает функция <function>socket_last_error</function>.
Этот код передают в функцию <function>socket_strerror</function>,
чтобы получить текстовое описание ошибки.
</para>
<note>
<para>
Функция <function>socket_read</function> возвращает строку нулевой длины (""),
когда данных для чтения не осталось.
</para>
</note>
</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="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_accept</function></member>
<member><function>socket_bind</function></member>
<member><function>socket_connect</function></member>
<member><function>socket_listen</function></member>
<member><function>socket_last_error</function></member>
<member><function>socket_strerror</function></member>
<member><function>socket_write</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
-->