Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 27 additions & 28 deletions reference/sockets/functions/socket-select.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 14dc7c47365f2b71f6c907a5ba5bccf42534d5a9 Maintainer: PhilDaiguille Status: ready -->
<!-- EN-Revision: 3e6082f609ead63cfa7b33a06d8e0c723d51bc65 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.socket-select" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
Expand Down Expand Up @@ -64,7 +63,7 @@
<varlistentry>
<term><parameter>seconds</parameter></term>
<listitem>
<para>
<simpara>
Los argumentos <parameter>seconds</parameter> y <parameter>microseconds</parameter>
juntos forman el argumento <literal>timeout</literal> (duración).
El <literal>timeout</literal> es la duración máxima de tiempo antes de que
Expand All @@ -73,31 +72,32 @@
<function>socket_select</function> devuelva inmediatamente. Esto es muy
útil para hacer polling (sondaje). Si <parameter>seconds</parameter> es &null;
(sin timeout), <function>socket_select</function> puede bloquearse indefinidamente.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>microseconds</parameter></term>
<listitem>
<para>
</para>
<simpara>
Véase la descripción de <parameter>seconds</parameter>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<warning>
<para>
<simpara>
Al salir de la función, los arrays son modificados para indicar
qué sockets han cambiado de estado.
</para>
Las claves originales de los &array;s se conservan.
</simpara>
</warning>
<para>
No es necesario pasar todos los arrays a
<function>socket_select</function>. Pueden ser omitidos, o
puede usarse un array vacío, o incluso &null; en su lugar. No olvide
que estos arrays son pasados por <emphasis>referencia</emphasis> y
serán modificados por <function>socket_select</function>.
</para>
<simpara>
Los tres arrays deben pasarse todos, pero un array que no sea de interés
puede ser un &array; vacío o &null;; al menos uno de ellos debe ser un
&array; no vacío. Son pasados por <emphasis>referencia</emphasis> y son
modificados una vez que <function>socket_select</function> ha devuelto.
</simpara>
<note>
<para>
Debido a una limitación del motor Zend actual, no es posible
Expand All @@ -121,13 +121,13 @@ socket_select($r, $w, $e, 0);

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
En caso de éxito, <function>socket_select</function> devuelve el número de
sockets contenidas en los arrays modificados. Este número puede ser cero si
se alcanzó el tiempo máximo de espera. En caso de error, &false;
es devuelto. El código de error generado puede ser obtenido llamando a la
función <function>socket_last_error</function>.
</para>
</simpara>
<note>
<para>
Asegúrese de usar el operador <literal>===</literal>
Expand Down Expand Up @@ -205,9 +205,9 @@ if ($num_changed_sockets === false) {
</listitem>
<listitem>
<simpara>
Si escribe o lee con un socket devuelto en un array,
tenga en cuenta que no podrá escribir o leer todas las datos
que solicite. Esté preparado para poder leer solo un byte.
Al leer de un socket devuelto en los arrays, o al escribir en él,
tenga en cuenta que no se lee ni se escribe necesariamente la totalidad
de los datos solicitados. Esté preparado para tratar tan solo un byte.
</simpara>
</listitem>
<listitem>
Expand All @@ -225,14 +225,13 @@ if ($num_changed_sockets === false) {

<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_read</function></member>
<member><function>socket_write</function></member>
<member><function>socket_last_error</function></member>
<member><function>socket_strerror</function></member>
</simplelist>
</para>
<simplelist>
<member><function>socket_read</function></member>
<member><function>socket_write</function></member>
<member><function>socket_last_error</function></member>
<member><function>socket_strerror</function></member>
<member><function>stream_select</function></member>
</simplelist>
</refsect1>

</refentry>
Expand Down
42 changes: 28 additions & 14 deletions reference/stream/functions/stream-select.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a758e79c3bf173203550cb78ef07509cf859b212 Maintainer: PhilDaiguille Status: ready -->
<!-- EN-Revision: 3e6082f609ead63cfa7b33a06d8e0c723d51bc65 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no Maintainer: Marqitos -->
<refentry xml:id="function.stream-select" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
Expand All @@ -16,12 +16,15 @@
<methodparam><type class="union"><type>int</type><type>null</type></type><parameter>seconds</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>microseconds</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<simpara>
<function>stream_select</function> acepta un array de flujos y
espera a que alguno de ellos cambie de estado. Esta operación es
equivalente a lo que hace la función <function>socket_select</function>,
salvo que trabaja sobre un flujo.
</para>
espera a que alguno de ellos cambie de estado. Es el equivalente de
<function>socket_select</function> para los flujos, pero ambas funciones no
se comportan igual en todos los aspectos: no señalan los argumentos
inválidos de la misma manera, y <function>stream_select</function> puede
terminar sin consultar en absoluto al sistema operativo, tal como se describe
en las notas siguientes.
</simpara>
</refsect1>

<refsect1 role="parameters">
Expand Down Expand Up @@ -232,18 +235,28 @@ if (false === stream_select($r, $w, $e, 0)) {
</para>
</note>
<note>
<para>
Si ha escrito o leído en un flujo que es retornado en los arrays
de flujos, sea consciente de que estos flujos pueden no haber escrito
o leído la totalidad de los datos solicitados. Sea
capaz de leer un solo byte.
</para>
<simpara>
Al leer de un flujo devuelto en los arrays, o al escribir en él, tenga en
cuenta que no se lee ni se escribe necesariamente la totalidad de los datos
solicitados. Esté preparado para tratar tan solo un byte.
</simpara>
</note>
<note>
<para>
<simpara>
Algunos flujos (como <literal>zlib</literal>) no pueden ser
seleccionados por esta función.
</para>
</simpara>
</note>
<note>
<simpara>
Un flujo que ya dispone de datos almacenados en el búfer del lado de PHP se
señala como listo sin que se realice la llamada
<literal>select()</literal> subyacente. En ese caso, los arrays
<parameter>write</parameter> y <parameter>except</parameter> se vacían sin
haber sido examinados: un flujo que estaba listo para escritura no se
señala, y el valor de retorno solo cuenta los flujos disponibles para
lectura.
</simpara>
</note>
<note>
<title>Compatibilidad con Windows</title>
Expand All @@ -264,6 +277,7 @@ if (false === stream_select($r, $w, $e, 0)) {
&reftitle.seealso;
<simplelist>
<member><function>stream_set_blocking</function></member>
<member><function>socket_select</function></member>
</simplelist>
</refsect1>
</refentry>
Expand Down