(PHP 4 >= 4.3.0, PHP 5, PHP 7)
socket_get_option — Holt die Socket-Optionen für einen Socket
socket_get_option() gibt den Wert der Option zurück,
die im Parameter optname
für den Socket
socket
angegeben wurde.
socket
Ein gültiger Socket-Deskriptor, der von der Funktion socket_create() oder socket_accept() erzeugt wurde.
level
Der Parameter level
enthält die Protokollebene,
für die die Option gilt. Beispiel: Um Optionen auf der Socketebene
abzufragen würde level
den Wert SOL_SOCKET
enthalten. Andere Ebenen, etwa TCP
, können abgefragt werden, indem man
die Protokollnummer dieser Ebene angibt. Protokollnummern können mit
einem Aufruf von getprotobyname() ermittelt werden.
optname
Option | Beschreibung | Typ |
---|---|---|
SO_DEBUG |
Gibt an, ob Debug-Informationen mitgeschrieben wurden. | int |
SO_BROADCAST |
Gibt an, ob die Übermittlung von Rundsende-Nachrichten unterstützt wird. | int |
SO_REUSEADDR |
Gibt an, ob lokale Adressen wiederverwendet werden können. | int |
SO_REUSEPORT |
Gibt an, ob lokale Ports wiederverwendet werden können. | int |
SO_KEEPALIVE |
Gibt an, ob Verbindungen durch periodische Aussendungen von Nachrichten aufrecht erhalten werden. Falls der verbundene Socket nicht auf diese Nachrichten antworten kann, wird die Verbindung u diesen Socket schreiben, nterbrochen und Prozesse, die auferhalten ein SIGPIPE-Signal. | int |
SO_LINGER |
Gibt an, ob der Falls l_onoff von 0 verschieden und l_linger gleich 0 ist, werden alle noch nicht gesendeten Daten verworfen, und bei einem verbindungsorientierten Socket das Signal RST (Reset) an die Gegenstelle gesendet. Andererseits, falls sowohl l_onoff als auch l_linger von 0 verschieden sind, blockiert der Aufruf von socket_close() den Socket so lange, bis entweder alle Daten gesendet sind oder das Zeitlimit erreicht ist, das in l_linger gesetzt wurde. Wenn der Socket auf nicht-blockieren gesetzt ist, schlägt socket_close() fehl und gibt einen Fehler zurück. |
array. Das Array enthält zwei Schlüssel: l_onoff und l_linger. |
SO_OOBINLINE |
Gibt an, ob socket die Übertragung von
bandexternen Daten in der Reihenfolge überträgt, wie sie auftreten.
|
int |
SO_SNDBUF |
Gibt die Größe des Sendepuffers zurück. | int |
SO_RCVBUF |
Gibt die Größe des Empfangspuffers zurück. | int |
SO_ERROR |
Gibt den Fehlerstatus zurück und löscht ihn. | int (dieser Wert kann nicht von socket_set_option() gesetzt werden.) |
SO_TYPE |
Gibt den Typ von socket zurück (z. B.
SOCK_STREAM ).
|
int (dieser Wert kann nicht von socket_set_option() gesetzt werden.) |
SO_DONTROUTE |
Gibt an, ob ausgehende Nachrichten das standardmässige Routing umgehen. | int |
SO_RCVLOWAT |
Gibt die Mindestanzahl Bytes an, die socket
bei einer Empfangsoperation verarbeiten soll.
|
int |
SO_RCVTIMEO |
Gibt den Wert der Zeitspanne bis zu einer Zeitüberschreitung bei Empfangsoperationen an. | array. Das Array enthält zwei Schlüssel: sec, den Sekunden-Anteil der Zeitspanne und usec, den Mikrosekunden-Anteil der Zeitspanne bis zu einer Zeitüberschreitung. |
SO_SNDTIMEO |
Gibt die Zeitspanne an, nach der eine Zeitüberschreitung bei Sendeoperationen ausgelöst wird. Eine Ausgabefunktion darf während der angegebenen Zeitspanne blockieren, falls die Ablaufsteuerung den Versand der Daten verhindert. | array. Das Array enthält zwei Schlüssel: sec den Sekunden-Anteil der Zeitspanne und usec den Mikrosekunden-Anteil der Zeitspanne bis zu einer Zeitüberschreitung. |
SO_SNDLOWAT |
Gibt die Mindestanzahl Bytes an, die socket
bei einer Ausgabeoperation verarbeiten soll.
|
int |
TCP_NODELAY |
Gibt an, ob der TCP Nagle Algorithmus deaktiviert ist. | int |
MCAST_JOIN_GROUP |
Tritt einer Multicast-Gruppe bei. (hinzugefügt in PHP 5.4) | array mit den Schlüsseln "group" ( das eine IPv4 oder IPv6 Multicast-Adresse als string angibt), und "interface" (das entweder eine Schnittstellennummer als int oder einen Schnittstellennamen als string, wie etwa "eth0", angibt. 0 kann angegeben werden, um festzulegen, dass die Schnittstelle unter Verwendung von Routing-Regeln gewählt werden soll. (Dies kann nur für socket_set_option() verwendet werden.) |
MCAST_LEAVE_GROUP |
Verläßt eine Multicast-Gruppe. (hinzugefügt in PHP 5.4) |
array. Siehe MCAST_JOIN_GROUP für
weitere Information. (Dies kann nur für
socket_set_option() verwendet werden.)
|
MCAST_BLOCK_SOURCE |
Blockiert Pakete, die von einer bestimmten Quelle an eine bestimmte Multicast-Gruppe, der man zuvor beigetreten ist, gesendet wurden. (hinzugefügt in PHP 5.4) |
array mit denselben Schlüsseln wie
MCAST_JOIN_GROUP , plus einem zusätzlichen
Schlüssel, source, der die IPv4 oder IPv6 Adresse
der zu blockierenden Quelle als string angibt. (Dies
kann nur für socket_set_option() verwendet
werden.)
|
MCAST_UNBLOCK_SOURCE |
Unblockiert Pakete, die von einer bestimmten Quelle an eine bestimmte Multicast-Gruppe, der man zuvor beigetreten ist, gesendet wurden; d.h. entsprechende Pakete werden wieder empfangen. (hinzugefügt in PHP 5.4) |
array mit demselben Format wie
MCAST_BLOCK_SOURCE . (Dies kann nur für
socket_set_option() verwendet werden.)
|
MCAST_JOIN_SOURCE_GROUP |
Empfange Pakete, die an eine bestimmte Multicast-Gruppe gesendet wurden, deren Quelladresse mit einem bestimmten Wert übereinstimmt. (hinzugefügt in PHP 5.4) |
array mit demselben Format wie
MCAST_BLOCK_SOURCE . (Dies kann nur für
socket_set_option() verwendet werden.)
|
MCAST_LEAVE_SOURCE_GROUP |
Beende den Empfang von Paketen, die an eine bestimmte Multicast-Gruppe gesendet wurden, deren Quelladresse mit einem bestimmten Wert übereinstimmt. (hinzugefügt in PHP 5.4) |
array mit demselben Format wie
MCAST_BLOCK_SOURCE . (Dies kann nur für
socket_set_option() verwendet werden.)
|
IP_MULTICAST_IF |
Die ausgehende Schnittstelle für IPv4 Multicast-Pakete. (hinzugefügt in PHP 5.4) |
Entweder int, um die Schnittstellennummer, oder ein
string mit dem Schnittstellennamen, wie
eth0. Der Wert 0 kann verwendet
werden, um festzulegen, dass die Routingtabelle für die
Schnittstellenauswahl genutzt werden soll. Die Funktion
socket_get_option() gibt einen Schnittstellenindex
zurück. Es ist zu beachten, dass im Gegensatz zur C-API, diese Option
KEINE IP-Adresse akzeptiert. Das beseitigt den
Schnittstellenunterschied zwischen
IP_MULTICAST_IF und
IPV6_MULTICAST_IF .
|
IPV6_MULTICAST_IF |
Die ausgehende Schnittstelle für IPv6 Multicast-Pakete. (hinzugefügt in PHP 5.4) |
Identisch zu IP_MULTICAST_IF .
|
IP_MULTICAST_LOOP |
Die Multicast-Loopback-Richtlinie für IPv4 Pakete, die festlegt, ob Multicast-Pakete, die von diesem Socket versendet wurden, ebenfalls Empfänger auf demselben Host erreichen, die auf der ausgehenden Schnittstelle, die von diesem Socket verwendet wird, derselben Multicast-Gruppe beigetreten sind. Dies ist die Voreinstellung. (hinzugefügt in PHP 5.4) | int (entweder 0 oder 1). Für socket_set_option() wird jeder Wert akzeptiert, und gemäß den übelichen PHP-Regeln in Booleschen Wert konvertiert. |
IPV6_MULTICAST_LOOP |
Analog zu IP_MULTICAST_LOOP , aber für IPv6.
(hinzugefügt in PHP 5.4)
|
int. Siehe IP_MULTICAST_LOOP .
|
IP_MULTICAST_TTL |
Die Lebensdauer ausgehender IPv4 Multicast-Pakete. Dies sollte ein Wert zwischen 0 (verlasse nicht die Schnittstelle) und 255 sein. Der Vorgabewert ist 1 (nur das lokale Netzwerk wird erreicht). (hinzugefügt in PHP 5.4) | int zwischen 0 und 255. |
IPV6_MULTICAST_HOPS |
Analog zu IP_MULTICAST_TTL , aber für IPv6
Pakete. Der Wert -1 wird ebenfalls akzeptiert, und bedeutet, dass die
Vorgabewert der Route verwendet werden soll. (hinzugefügt in PHP 5.4)
|
int zwischen -1 und 255. |
Gibt den Wert der angegebenen Option zurück oder FALSE
, falls ein Fehler auftrat.
Beispiel #1 socket_set_option()-Beispiel
<?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));
?>