Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

socket_get_option

Socket-Funktionen

    Befehl:
mixed socket_get_option ( resource $socket , int $level , int $optname )


    Parameter-Liste:
NameBeschreibung
socketEin gültiger Socket-Deskriptor, der von der Funktion socket_create() oder socket_accept() erzeugt wurde.
levelDer Parameter level enthält die Protokollebene, für die die Option gilt. Beispiel: Um Optionen auf der Socketebene abzufragen würde level den Wert SQL_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
Mögliche Socket-Optionen
OptionBeschreibungTyp
SO_DEBUGGibt an, ob Debug-Informationen mitgeschrieben wurden.int
SO_BROADCASTGibt an, ob die Übermittlung von Rundsende-Nachrichten unterstützt wird.int
SO_REUSEADDRGibt an, ob die lokale Adresse wiederverwendet werden kann.int
SO_KEEPALIVEGibt an, ob Verbindungen durch periodische Aussendungen von Nachrichten aufrecht erhalten werden. Falls der verbundene Socket nicht auf diese Nachrichten antworten kann, wird die Verbindung unterbrochen und Prozesse, die auf diesen Socket schreiben, erhalten ein SIGPIPE-Signal.int
SO_LINGERGibt an, ob der socket einen Aufruf von socket_close() verzögert, falls noch Daten vorhanden sind. In der Standardeinstellung versucht ein Socket vor dem Schliessen, 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 ist 0, werden bei einem verbindungsorientierten Socket alle noch nicht gesendeten Daten verworfen und 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 and l_linger.
SO_OOBINLINEGibt an, ob socket die Übertragung von bandexternen Daten in der Reihenfolge überträgt, wie sie auftreten.int
SO_SNDBUFGibt die Grösse des Sendepuffers zurück.int
SO_RCVBUFGibt die Grösse des Empfangspuffers zurück.int
SO_ERRORGibt den Fehlerstatus zurück und löscht ihn.int (dieser Wert kann nicht von socket_set_option() gesetzt werden.)
SO_TYPEGibt den Typ von socket zurück (z. B. SOCK_STREAM).int (dieser Wert kann nicht von socket_set_option() gesetzt werden.)
SO_DONTROUTEGibt an, ob ausgehende Nachrichten das standardmässige Routing umgehen.int
SO_RCVLOWATGibt die Mindestanzahl Bytes an, die socket bei einer Empfangsoperation verarbeiten soll. (Der Vorgabewert ist 1.)int
SO_RCVTIMEOGibt 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_SNDTIMEOGibt 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_SNDLOWATGibt die Mindestanzahl Bytes an, die socket bei einer Ausgabeoperation verarbeiten soll.int

    Rückgabewerte:
Gibt den Wert der angegebenen Option zurück oder FALSE, falls ein Fehler auftrat.

    Beschreibung:
socket_get_option() gibt den Wert der Option zurück, der im Parameter optname für den Socket socket gesetzt wurde.


    Aktiv in Version:
(PHP 4 >= 4.3.0, PHP 5)

socket_get_option() - Beispiel:


Eingabe:
<?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));
?>

Beschreibung:
Version Beschreibung
4.3.0 Der Name der Funktion wurde geändert. Sie ersetzt die bisherige Funktion socket_getopt().
Socket-Funktionen