(PHP 4 >= 4.3.0, PHP 5, PHP 7)
socket_get_option — Lit les options du socket
socket_get_option() récupère la valeur de l'option
spécifiée par le paramètre optname
pour le socket
spécifié par le paramètre socket
.
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
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 |
Indique si les adresses locales peuvent être réutilisées ou pas. | int |
SO_REUSEPORT |
Indique si les ports locaux peuvent être réutilisés. | int |
SO_KEEPALIVE |
Reporte si les connexions sont persistantes avec des transmissions périodiques de messages ou pas. Si le socket connecté échoue en réponse à ces messages, la connexion est interrompue et le processus écrira sur ce socket une notification avec un signal SIGPIPE. | int |
SO_LINGER |
Reporte si le socket 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 le socket est non-bloquant, socket_close() échouera et retournera une erreur. |
array. Le tableau contiendra 2 clés : l_onoff et l_linger. |
SO_OOBINLINE |
Reporte si le 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 le 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 le 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 le socket socket .
|
int |
TCP_NODELAY |
Indique si l'algorithme Nagle TCP est désactivé. | int |
MCAST_JOIN_GROUP |
Joint un groupe multi-cast (ajouté en PHP 5.4). | Un tableau avec une clé "group", spécifiant une chaîne de caractères avec les adresses multi-cast IPv4 ou IPv6 et une clé "interface", spécifiant soit un numéro d'interface (de type int), soit une chaîne de caractères avec le nom de l'interface, comme "eth0". 0 peut être spécfié pour indiquer que l'interface doit être sélectionné en utilisant les règles de routage (ne peut être utilisé qu'avec la fonction socket_set_option()). |
MCAST_LEAVE_GROUP |
Quitte un groupe multi-cast (ajouté en PHP 5.4). |
Un tableau. Voir la constante MCAST_JOIN_GROUP
pour plus d'informations (ne peut être utilisé qu'avec la fonction
socket_set_option()).
|
MCAST_BLOCK_SOURCE |
Paquets de bloc arrivant depuis une source spécifique vers un groupe multi-cast spécifique, qui aura du être joint auparavant (ajouté en PHP 5.4). |
Un tableau contenant les mêmes clés que celles de la constante
MCAST_JOIN_GROUP , avec une clé supplémentaire
source, lié à une chaîne de caractère spécifiant
une adresse IPv4 ou IPv6 de la source à bloquer
(ne peut être utilisé qu'avec la fonction
socket_set_option()).
|
MCAST_UNBLOCK_SOURCE |
Débloque (recommence à recevoir) les paquets arrivant depuis une source spécifique vers un groupe multi-cast spécifique, qui aura dû être joins auparavant (ajouté en 5.4). |
Un tableau au même format que celui de la constante
MCAST_BLOCK_SOURCE
(ne peut être utilisé qu'avec la fonction
socket_set_option()).
|
MCAST_JOIN_SOURCE_GROUP |
Reçoit des paquets destinés à un groupe multi-cast spécifique dont l'adresse source correspond à une valeur spécifique (ajouté en PHP 5.4). |
Un tableau au même format que celui de la constante
MCAST_BLOCK_SOURCE
(ne peut être utilisé qu'avec la fonction
socket_set_option()).
|
MCAST_LEAVE_SOURCE_GROUP |
Arrête de recevoir des paquets destinés à un groupe multi-cast spécifique dont l'adresse source correspond à une valeur spécifique (ajouté en PHP PHP 5.4) |
Un tableau au même format que celui de la constante
MCAST_BLOCK_SOURCE
(ne peut être utilisé qu'avec la fonction
socket_set_option()).
|
IP_MULTICAST_IF |
L'interface de sortie pour les paquets multi-cast IPv4 (ajouté en PHP 5.4). |
Soit un entier spécifiant le numéro de l'interface, soit une
chaîne de caractères représentant le nom de l'interface, par exemple,
eth0. La valeur 0
peut être utilisé pour indiquer la table de routage à utiliser
dans la sélection de l'interface. La fonction
socket_get_option() retourne un index d'interface.
Notez que, contrairement à l'API C, cette option ne prend pas
comme argument une adresse IP. Ceci élimine la différence d'interface
entre les constantes IP_MULTICAST_IF et
IPV6_MULTICAST_IF .
|
IPV6_MULTICAST_IF |
L'interface de sortie pour les paquets multi-cast IPv6 (ajouté en PHP 5.4). |
Identique à la constante IP_MULTICAST_IF .
|
IP_MULTICAST_LOOP |
La politique de la boucle locale multi-cast pour les paquets IPv4, qui détermine si les paquets multi-cast envoyés par ce socket doivent aussi atteindre les récepteurs du même hôte qui ont joint le groupe multi-cast sur l'interface de sortie utilisée par ce socket. C'est le comportement par défaut (ajouté en PHP 5.4). | Un entier (soit 0, soit 1). Pour la fonction socket_set_option(), n'importe quelle valeur sera acceptée et sera convertie en un booléen suivant les règles habituelles de PHP. |
IPV6_MULTICAST_LOOP |
Identique à la constante IP_MULTICAST_LOOP ,
mais pour l'IPv6 (ajouté en PHP 5.4).
|
Un entier. Voir la constante IP_MULTICAST_LOOP .
|
IP_MULTICAST_TTL |
La durée de vie des paquets sortants multi-cast IPv4. Ce doit être une valeur comprise entre 0 (ne pas quitter l'interface) et 255. Par défaut, la valeur est à 1 (seul le réseau local est atteint) (ajouté en PHP 5.4). | Un entier entre 0 et 255. |
IPV6_MULTICAST_HOPS |
Identique à la constante IP_MULTICAST_TTL ,
mais pour les paquets IPv6. La valeur -1 est également acceptée,
signifiant que la route par défaut doit être utilisée
(ajouté en PHP 5.4).
|
Un entier compris entre -1 et 255. |
Retourne la valeur de l'option fournie, ou FALSE
si une erreur survient.
Exemple #1 Exemple avec socket_get_option()
<?php
$socket = socket_create_listen(1223);
$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);
var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>