socket_get_option
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
socket_get_option — Holt die Socket-Optionen für einen Socket
Beschreibung
socket_get_option() gibt den Wert der Option zurück,
die im Parameter optname
für den Socket
socket
angegeben wurde.
Parameter-Liste
-
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ürdelevel
den WertSOL_SOCKET
enthalten. Andere Ebenen, etwaTCP
, können abgefragt werden, indem man die Protokollnummer dieser Ebene angibt. Protokollnummern können mit einem Aufruf von getprotobyname() ermittelt werden. -
optname
-
Mögliche Socket-Optionen 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
socket
einen Aufruf von socket_close() verzögert, falls noch Daten vorhanden sind. In der Standardeinstellung versucht ein Socket vor dem Schließen, alle noch nicht gesendeten Daten zu übermitteln. Im Falle eines verbindungsorientierten Sockets, wartet socket_close() auf die Empfangsbestätigung seiner Gegenstelle.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
undIPV6_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.
Beispiele
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));
?>
Siehe auch
- socket_create_listen() - Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
- socket_set_option() - Setzt die Optionen für einen Socket
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-socket-get-option.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.