socket_recvfrom <<< |
socket_select | socket_send >>> |
6.35 Sockets 6 Référence des fonctions Manuel PHP . Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . Erreurs de socket . Exemples . socket_accept . socket_bind . socket_clear_error . socket_close . socket_connect . socket_create_listen . socket_create_pair . socket_create . socket_get_option . socket_getpeername . socket_getsockname . socket_last_error . socket_listen . socket_read . socket_recv . socket_recvfrom ->socket_select . socket_send . socket_sendto . socket_set_block . socket_set_nonblock . socket_set_option . socket_shutdown . socket_strerror . socket_write |
6.35.25 socket_select() Exécute l'appel système select() un tableau de sockets avec une durée d'expiration[ Exemples avec socket_select ] PHP 4 >= 4.1.0, PHP 5 int socket_select ( array read , array write , array except , int tv_sec , int tv_usec )socket_select accepte un tableau de sockets et attend qu'elles changent de statut. Ceux qui sont familiers avec les sockets de BSD reconnaîtront dans ces tableaux de sockets les jeux de pointeurs de fichiers. Trois tableaux indépendants de ressources de sockets sont surveillés. Les sockets listées dans le paramètre read seront surveillées en lecture : pour savoir quand elles sont disponibles en lecture (plus précisément, si une lecture ne va pas bloquer, en particulier, une ressource de socket a déjà atteint une fin de fichier, auquel cas socket_read retournera une chaîne de taille zéro). Les sockets listées dans write seront surveillées en écriture : pour voir si une écriture ne va pas bloquer. Les sockets listées dans except seront surveillées pour leurs exceptions.
Vous n'avez pas besoin de passer tous les tableaux à socket_select . Vous pouvez les omettre, ou utiliser un tableau vide, ou encore NULL à la place. N'oubliez pas que ces tableaux sont passés par référence et seront modifiés par socket_select .
Les paramètres tv_sec et tv_usec ensembles forment le paramètre timeout (durée de vie). Le timeout est la durée maximale de temps avant que socket_select ne se termine. tv_sec peut être zéro, ce qui fera que socket_select retournera immédiatement. C'est très pratique pour faire du polling (sondage). Si tv_sec est NULL (pas de timeout), socket_select peut se bloquer indéfiniment. En cas de succès, socket_select retourne le nombre de sockets contenues dans les tableaux modifiés. Ce nombre peut être zéro si la durée maximale d'attente a été atteinte. En cas d'erreur, FALSE est retourné. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error . Ce code d'erreur peut être passé à la fonction socket_strerror pour obtenir un message d'erreur humainement lisible.
Voir aussi socket_read , socket_write , socket_last_error et socket_strerror . |
<< | socket_select | >> |
socket_recvfrom | Sockets | socket_send |