PHP 8.5.0 Alpha 1 available for testing

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_set_blockEstablece el socket en modo bloqueante

Descripción

socket_set_block(Socket $socket): bool

socket_set_block() elimina la opción O_NONBLOCK del socket especificado por socket.

Cuando se realiza una operación (por ejemplo, recepción, envío, conexión, aceptación, etc.) sobre un socket no bloqueante, el script no se pone en pausa hasta que recibe una señal. En su lugar, si la operación debe resultar en un bloqueo, la función llamada fallará.

Parámetros

socket

Una instancia de Socket creada por socket_create() o socket_accept().

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.0.0 socket is a Socket instance now; previously, it was a resource.

Ejemplos

Ejemplo #1 Ejemplo con socket_set_block()

<?php
$socket
= socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

Este ejemplo crea un socket que escucha todas las interfaces del puerto 1223 y establece el socket en modo O_BLOCK. socket_accept() esperará hasta que haya una conexión para aceptar.

Ver también

add a note

User Contributed Notes 1 note

up
1
laacz at laacz dot lv
10 years ago
Besides true and false socket_set_block might return NULL if you're not too careful. That would happen when passing non socket resource as first parameter.

E.g. socket_set_block(false)) would return NULL and emit warning that you're trying to do things with non-socket.
To Top