socket_get_option
(PHP 4 >= 4.3.0, PHP 5)
socket_get_option — Lit les options du socket
Description
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
.
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 valeurSOL_SOCKET
du paramètrelevel
sera utilisée. Les autres degrés, commeTCP
, 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 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
socket
s'attarde sur la fonction socket_close() si des données sont présentes ou pas. Par défaut, lorsque le socket est fermé, 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 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
etIPV6_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.
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($socket, SOL_SOCKET, SO_LINGER, $linger);
var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>
Historique
Version | Description |
---|---|
4.3.0 | Le nom de cette fonction a changé. Avant, elle s'appelait socket_getopt(). |