socket_recvmsg <<< |
socket_select | socket_send >>> |
7.100 Socket 7 Index des fonctions Manuel PHP . Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies . Socket Errors . 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_iovec_add . socket_iovec_alloc . socket_iovec_delete . socket_iovec_fetch . socket_iovec_free . socket_iovec_set . socket_last_error . socket_listen . socket_read . socket_readv . socket_recv . socket_recvfrom . socket_recvmsg ->socket_select . socket_send . socket_sendmsg . socket_sendto . socket_set_block . socket_set_nonblock . socket_set_option . socket_shutdown . socket_strerror . socket_write . socket_writev |
7.100.33 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 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 reconnaitront dans ces tableaux de sockets les sets de file descriptor. 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 and tv_usec ensemble 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 contenus dans les tableaux modifiées. 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_recvmsg | Socket | socket_send |