# socket_set_nonblock

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

socket_set_nonblock — Establece el modo de no-bloqueo para el descriptor de archivo fd

### Descripción

socket_set_nonblock(resource `$socket`): bool

La funciòn socket_set_nonblock() establece la bandera `O_NONBLOCK` en el socket especificado por el parámetro `socket`.

Cuando una operación (p.ej. recibir, enviar, conectar, aceptar, ...) se lleva a cabo sobre un socket de no-bloqueo, el script no pausará su ejecución hasta que reciba una señal o pueda realizar la operación. Más bien, si la operacion resultaría en un bloqueo, la llamada a la función fallará.

### Parámetros

`socket`

  Un recurso socket válido creado con socket_create() o socket_accept().

### Valores devueltos

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

### Ejemplos

Ejemplo #1 Un ejemplo de socket_set_nonblock()

`<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>`

Este ejemplo crea un socket de escucha en todas las interfaces en el puerto 1223 y establece el socket al modo `O_NONBLOCK`. socket_accept() fallará inmediantamente a menos que haya una conexión pendiente en ese preciso momento.

### Ver también

- socket_set_block() - Establece el modo de bloqueo de un recurso socket
- socket_set_option() - Establece las opciones de socket para el socket
- stream_set_blocking() - Establecer el modo bloqueo/no-bloqueo en un flujo