-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathsocket.xml
More file actions
216 lines (203 loc) · 6.16 KB
/
socket.xml
File metadata and controls
216 lines (203 loc) · 6.16 KB
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8bc832a464e33122e8129f5a623bd845b69fa7e0 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="context.socket" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="verify_info:false" role="stream_context_option">
<refnamediv>
<refname>Opciones de contexto de los sockets</refname>
<refpurpose>Lista de opciones de contexto de los sockets</refpurpose>
</refnamediv>
<refsect1 role="description"><!-- {{{ -->
&reftitle.description;
<para>
Las opciones de contexto de los sockets están disponibles para todos los gestores que funcionan a través de los sockets, como
<literal>tcp</literal>, <literal>http</literal> y
<literal>ftp</literal>.
</para>
</refsect1><!-- }}} -->
<refsect1 role="options"><!-- {{{ -->
&reftitle.options;
<para>
<variablelist>
<varlistentry xml:id="context.socket.bindto">
<term><parameter>bindto</parameter></term>
<listitem>
<para>
Utilizado para especificar la dirección IP (ya sea IPv4 o IPv6), y/o
el número del puerto que PHP utilizará para acceder a la red.
La sintaxis es <literal>ip:puerto</literal> para las direcciones IPv4,
y <literal>[ip]:puerto</literal> para las direcciones IPv6.
El hecho de definir la IP o el puerto a <literal>0</literal> permitirá
al sistema elegir el puerto y/o la IP por sí mismo.
</para>
<note>
<para>
Dado que FTP crea 2 sockets de conexión durante una operación normal,
el número del puerto no puede ser especificado utilizando esta opción.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.socket.backlog">
<term><parameter>backlog</parameter></term>
<listitem>
<para>
Utilizado para limitar el número de conexiones activas
en la lista de espera del socket.
</para>
<note>
<para>
Esto solo es aplicable a la función
<function>stream_socket_server</function>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.socket.ipv6_v6only">
<term><parameter>ipv6_v6only</parameter></term>
<listitem>
<para>
Sustituye el sistema operativo por defecto en cuanto al mapeo de IPv4 en IPv6.
</para>
<note>
<para>
Esto es importante en particular cuando se intenta escuchar en
las direcciones IPv4 por separado mientras existe una ligadura en <literal>[::]</literal>.
</para>
<para>
Esto solo es aplicable a la función <function>stream_socket_server</function>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.socket.so_reuseport">
<term><parameter>so_reuseport</parameter></term>
<listitem>
<para>
Permite múltiples ligaduras de una misma pareja ip:puerto, incluso desde procesos distintos.
</para>
<note>
<para>
Esto solo es aplicable a la función <function>stream_socket_server</function>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.socket.so_broadcast">
<term><parameter>so_broadcast</parameter></term>
<listitem>
<para>
Permite enviar y recibir datos hacia/desde direcciones de difusión.
</para>
<note>
<para>
Esto solo es aplicable a la función <function>stream_socket_server</function>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="context.socket.tcp_nodelay">
<term><parameter>tcp_nodelay</parameter></term>
<listitem>
<para>
Poner el valor a &true; definirá <literal>SOL_TCP,NO_DELAY=1</literal>
correctamente, lo que desactivará el algoritmo TCP Nagle.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1><!-- }}} -->
<refsect1 role="changelog"><!-- {{{ -->
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.1.0</entry>
<entry>
Adición del parámetro <parameter>tcp_nodelay</parameter>.
</entry>
</row>
<row>
<entry>7.0.1</entry>
<entry>
Adición del parámetro <parameter>ipv6_v6only</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1><!-- }}} -->
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<para>
<example xml:id="context.socket.example-bindto"><!-- {{{ -->
<title>Ejemplo de uso del parámetro <parameter>bindto</parameter></title>
<programlisting role="php">
<![CDATA[
<?php
// Conexión a Internet utilizando la IP '192.168.0.100'
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);
// Conexión a Internet utilizando la IP '192.168.0.100' y el puerto '7000'
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);
// Conexión a Internet utilizando la dirección IPv6 '2001:db8::1'
// y el puerto '7000'
$opts = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);
// Conexión a Internet utilizando el puerto '7000'
$opts = array(
'socket' => array(
'bindto' => '0:7000',
),
);
// Creación del contexto...
$context = stream_context_create($opts);
// ...y se utiliza para recuperar los datos
echo file_get_contents('http://www.example.com', false, $context);
?>
]]>
</programlisting>
</example><!-- }}} -->
</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
-->