(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.
socketUne 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().
optionLes options disponibles sont les mêmes que pour la fonction socket_get_option().
valueLa valeur de l'option.
| Version | Description |
|---|---|
| 8.5.0 |
Lève désormais une exception lorsque
MCAST_LEAVE_GROUP ou
MCAST_LEAVE_SOURCE_GROUP est utilisé et que la
valeur n'est pas un objet ou un tableau valide, et lève une exception
ValueError lorsqu'une option multicast
est utilisée sur un socket qui n'est pas de la famille
AF_INET ou AF_INET6.
|
| 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;
}
?>