Beware, when using this function within a loop (i.e. a demon with a socket). The socket_accept(), for example, emits a warning each time there is no incoming connection available to be read. My php error log file got huge in a matter of seconds, eventually crashing the server.
Of course, i used the @ before the function to take care of that problem.
socket_set_nonblock
(PHP 4 >= 4.1.0, PHP 5)
socket_set_nonblock — Sélectionne le mode non bloquant d'un pointeur de fichier
Description
La fonction socket_set_nonblock() configure l'option O_NONBLOCK pour la socket spécifiée par le paramètre socket .
Lorsqu'une opération (e.g. réception, envoie, connexion, acceptation, ...) est effectuée sur une socket non-bloquante, le script ne se met pas en pause tant qu'elle reçoit un signal. Au lieu de cela, si l'opération doit résulter en un blocage, la fonction appelée échouera.
Liste de paramètres
- socket
-
Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Exemples
Exemple #1 Exemple avec socket_set_nonblock()
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
Cet exemple crée un socket écoutant toutes les interfaces sur port 1223 et définit la socket en mode O_NONBLOCK. socket_accept() échouera immédiatement s'il y a une connexion en attente exactement à ce moment là.
Voir aussi
- socket_set_block() - Met la socket en mode bloquant
- socket_set_option() - Modifie les options de socket
socket_set_nonblock
11-Sep-2009 02:46
