socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_set_optionSetzt die Optionen für einen Socket

Beschreibung

socket_set_option(
    Socket$socket,
    int$level,
    int$option,
    array|string|int$value
): bool

Mit socket_set_option() wird die Option, die mit option angegeben wurde, auf der Protokollebene level für den Socket socket auf den Wert gesetzt, der in value übergeben wurde.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

level

Der Parameter level gibt die Protokollebene an, auf der diese Option gilt. Um beispielsweise Optionen auf dem Socket-Level zu setzen, würde man den Parameter level auf den Wert SOL_SOCKET setzen. Andere Ebenen, wie etwa TCP können benutzt werden, indem man die Protokollnummer dieser Ebene benutzt. Protokollnummern erhält man mit der Funktion getprotobyname().

option

Es sind dieselben Socket-Optionen verfügbar, wie bei der Funktion socket_get_option() beschrieben.

value

Der Wert der Option.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

VersionBeschreibung
8.0.0socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_set_option()-Beispiel

<?php
$socket
= socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!
is_resource($socket)) {
echo
'Kann keinen Socket erzeugen: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo
'Kann keine Option setzen für Socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!
socket_bind($socket, '127.0.0.1', 1223)) {
echo
'Kann den Socket nicht benennen: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if (
$rval === false) {
echo
'Kann keine Socket-Optionen ermitteln: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if (
$rval !== 0) {
echo
'SO_REUSEADDR ist für den Socket gesetzt!' . PHP_EOL;
}
?>

Siehe auch

To Top