socket_create
socket_getpeername
Fonctions sur les sockets
PHP Manual

# socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option — Lit 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($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().

socket_create
socket_getpeername
Fonctions sur les sockets
PHP Manual