Fonctions sur les sockets
PHP Manual

socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_optionLit les options de la socket

Description

mixed socket_get_option ( resource $socket , int $level , int $optname )

socket_get_option() récupère la valeur de l'option spécifiée par le paramètre optname pour la socket spécifiée par le paramètre socket .

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create() ou la fonction socket_accept().

level

Le paramètre level spécifie la couche de protocole de l'option. Par exemple, pour connaître les options de la couche socket, la valeur SOL_SOCKET du paramètre level sera utilisée. Les autres degrés, comme TCP, peuvent être utilisés en spécifiant le numéro du protocole de cette couche. Les numéros de protocoles peuvent être trouvés en utilisant la fonction getprotobyname().

optname
Options disponibles pour les sockets
Option Description Type
SO_DEBUG Reporte si les informations de déboguage sont enregistrées ou pas. int
SO_BROADCAST Reporte si la transmission des annonces globales est supportée ou pas. int
SO_REUSEADDR Reporte si les adresses locales peuvent être réutilisées ou pas. int
SO_KEEPALIVE Reporte si les connexions sont persistantes avec des transmissions périodiques de messages ou pas. Si la socket connectée échoue en réponse à ces messages, la connexion est interrompue et le processus écrira à cette socket une notification avec un signal SIGPIPE. int
SO_LINGER

Reporte si la socket socket s'attarde sur la fonction socket_close() si des données sont présentes ou pas. Par défaut, lorsque la socket est fermée, socket_close() tente d'envoyer toutes les données qui ne l'ont pas encore été.

Si l_onoff ne vaut pas zéro et que l_linger vaut zéro, toutes les données qui n'ont pas encore été envoyées seront annulées et RST (réinitialisation) sera envoyé dans le cas d'une connexion orientée socket.

D'un autre côté, si l_onoff ne vaut pas zéro et l_linger ne vaut pas zéro, socket_close() bloquera tant que les données non envoyées ne le seront pas ou pendant le temps spécifié par l_linger. Si la socket est non-bloquante, socket_close() échouera et retournera une erreur.

array. Le tableau contiendra 2 clés : l_onoff et l_linger.
SO_OOBINLINE Reporte si la socket socket part sur des données en ligne out-of-band ou pas. int
SO_SNDBUF Reporte les informations sur la taille du tampon envoyé. int
SO_RCVBUF Reporte les informations sur la taille du tampon reçu. int
SO_ERROR Reporte les informations sur le statut de l'erreur et le vide. int (ne peut être défini par la fonction socket_set_option())
SO_TYPE Reporte le type de la socket socket (e.g. SOCK_STREAM). int (ne peut être défini par la fonction socket_set_option())
SO_DONTROUTE Reporte si les messages sortants dévient les équipements standard de cheminement. int
SO_RCVLOWAT Reporte le nombre minimal d'octets au processus pour les opérations entrantes sur la socket socket . int
SO_RCVTIMEO Reporte la valeur du délai d'exécution pour les opérations entrantes. array. Le tableau contiendra 2 clés : sec qui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDTIMEO Reporte la valeur du délai d'exécution spécifiant le temps maximal d'exécution pour les fonctions sortantes bloquantes parce que la commande d'écoulement empêche des données d'être envoyé. array. Le tableau contiendra 2 clés : secqui est la partie représentant les secondes de la valeur du délai d'attente et usec qui est la partie représentant les microsecondes.
SO_SNDLOWAT Reporte le nombre minimal d'octets au processus pour les opérations sortantes sur la socket socket . int

Valeurs de retour

Retourne la valeur de l'option fournie, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec socket_set_option()

<?php
$socket 
socket_create_listen(1223);

$linger = array('l_linger' => 1'l_onoff' => 1);
socket_set_option($socketSOL_SOCKETSO_LINGER$linger);

var_dump(socket_get_option($socketSOL_SOCKETSO_REUSEADDR));
?>

Historique

Version Description
4.3.0 Le nom de cette fonction a changé. Avant, elle s'appelait socket_getopt().


Fonctions sur les sockets
PHP Manual