PHP Doku:: Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde - function.socket-shutdown.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteSocketsSocket-Funktionensocket_shutdown

Ein Service von Reinhard Neidl - Webprogrammierung.

Socket-Funktionen

<<socket_set_option

socket_strerror>>

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdownSchließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde

Beschreibung

bool socket_shutdown ( resource $socket [, int $how = 2 ] )

Mit socket_shutdown() können Sie die Übertragungung hereinkommender, ausgehender oder aller Daten (die Standardeinstellung) über diesen socket abbrechen.

Parameter-Liste

socket

Ein gültiger Socket-Deskriptor, der von socket_create() erzeugt wurde.

how

Der Parameter how kann folgende Werte annehmen:
Mögliche Werte für how
0 Schließe den Socket für hereinkommende Daten (Lesen)
1 Schließe den Socket für ausgehende Daten (Schreiben)
2 Schließe den Socket in beiden Richtungen

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.


4 BenutzerBeiträge:
- Beiträge aktualisieren...
recycling dot sp dot am at gmail dot com
16.09.2010 18:09
Shutdown and SOL_TCP:
<?php
$a
= socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_shutdown($a, 2)
?>
PHP Warning:  socket_shutdown(): unable to shutdown socket [107]: Transport endpoint is not connected

Shutdown and SOL_UDP:
<?php
$a
= socket_create(AF_INET, SOCK_STREAM, SOL_UDP);
socket_shutdown($a, 2)
?>
PHP Warning:  socket_shutdown(): unable to shutdown socket [107]: Transport endpoint is not connected

Conclusion: if you are not actually connected, shutdown will fails with socket_error = 107, Transport endpoint is not connected. This is true for both TPC and UDP connection (which is suprising, UDP being a connectionless protocol). This is true no matter the value set for the how parameter.
korvin at biz dot by
21.05.2009 11:12
Closing socket graceful
<?php
  socket_shutdown
($resHandle, 1);//remote host yet can read
 
usleep(500);//wait remote host
 
socket_shutdown($resHandle, 0);//close reading
 
socket_close($resHandle);//finaly we can free resource
?>
richard dot thomas at psysolutions dot com
23.11.2005 19:20
That is not a good example of a graceful shutdown. One should close the sending side of the socket and continue to read until the remote end closes its sending connection.
ludvig dot ericson at gmail dot com
2.09.2005 22:13
Sockets should be first shutdown and then closed.
<?php
// Sample: Closing sockets gracefully
socket_shutdown($sock, 2);
socket_close($sock);
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)