(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
socket_set_option — Modifie les options de socket
socket_set_option() configure l'option spécifiée par option
, au niveau de protocole level
à la valeur pointée par value
pour le socket spécifié par socket
.
socket
Une instance de Socket créée par socket_create() ou socket_accept().
level
Le paramètre level
spécifie la couche du protocole de l'option. Par exemple, pour modifier une option de la couche socket, un niveau égal à SOL_SOCKET
va être utilisé. Les autres niveaux, comme TCP, peuvent être utilisés en spécifiant un numéro de protocole pour ce niveau. Les numéros de protocoles peuvent être utilisés en utilisant la fonction getprotobyname().
option
Les options disponibles sont les mêmes que pour la fonction socket_get_option().
value
La valeur de l'option.
Version | Description |
---|---|
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource. |
Exemple #1 Exemple avec socket_set_option()
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!is_resource($socket)) {
echo 'Impossible de créer le socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'Impossible de définir l\'option du socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}
if (!socket_bind($socket, '127.0.0.1', 1223)) {
echo 'Impossible de lier le socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
}
$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
if ($rval === false) {
echo 'Impossible de récupérer l\'option du socket : '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
echo 'SO_REUSEADDR est défini sur le socket !' . PHP_EOL;
}
?>