diff --git a/reference/sockets/functions/socket-select.xml b/reference/sockets/functions/socket-select.xml index dd6cef95f..e0e7ddac2 100644 --- a/reference/sockets/functions/socket-select.xml +++ b/reference/sockets/functions/socket-select.xml @@ -1,6 +1,5 @@ - - + @@ -64,7 +63,7 @@ seconds - + Los argumentos seconds y microseconds juntos forman el argumento timeout (duración). El timeout es la duración máxima de tiempo antes de que @@ -73,31 +72,32 @@ socket_select devuelva inmediatamente. Esto es muy útil para hacer polling (sondaje). Si seconds es &null; (sin timeout), socket_select puede bloquearse indefinidamente. - + microseconds - - + + Véase la descripción de seconds. + - + Al salir de la función, los arrays son modificados para indicar qué sockets han cambiado de estado. - + Las claves originales de los &array;s se conservan. + - - No es necesario pasar todos los arrays a - socket_select. Pueden ser omitidos, o - puede usarse un array vacío, o incluso &null; en su lugar. No olvide - que estos arrays son pasados por referencia y - serán modificados por socket_select. - + + 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 referencia y son + modificados una vez que socket_select ha devuelto. + Debido a una limitación del motor Zend actual, no es posible @@ -121,13 +121,13 @@ socket_select($r, $w, $e, 0); &reftitle.returnvalues; - + En caso de éxito, socket_select 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 socket_last_error. - + Asegúrese de usar el operador === @@ -205,9 +205,9 @@ if ($num_changed_sockets === false) { - 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. @@ -225,14 +225,13 @@ if ($num_changed_sockets === false) { &reftitle.seealso; - - - socket_read - socket_write - socket_last_error - socket_strerror - - + + socket_read + socket_write + socket_last_error + socket_strerror + stream_select + diff --git a/reference/stream/functions/stream-select.xml b/reference/stream/functions/stream-select.xml index 775cd4774..955885dcd 100644 --- a/reference/stream/functions/stream-select.xml +++ b/reference/stream/functions/stream-select.xml @@ -1,5 +1,5 @@ - + @@ -16,12 +16,15 @@ intnullseconds intnullmicroseconds&null; - + stream_select 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 socket_select, - salvo que trabaja sobre un flujo. - + espera a que alguno de ellos cambie de estado. Es el equivalente de + socket_select 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 stream_select puede + terminar sin consultar en absoluto al sistema operativo, tal como se describe + en las notas siguientes. + @@ -232,18 +235,28 @@ if (false === stream_select($r, $w, $e, 0)) { - - 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. - + + 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. + - + Algunos flujos (como zlib) no pueden ser seleccionados por esta función. - + + + + + 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 + select() subyacente. En ese caso, los arrays + write y except 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. + Compatibilidad con Windows @@ -264,6 +277,7 @@ if (false === stream_select($r, $w, $e, 0)) { &reftitle.seealso; stream_set_blocking + socket_select