socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_shutdownÉteint un socket en lecture et/ou écriture

Description

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

socket_shutdown() vous permet d'empêcher les données entrantes ou sortantes ou les deux (par défaut) d'être émises via le socket socket.

Note:

Le ou les buffers associés peuvent, ou peuvent ne pas etre vidés.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

how

La valeur du paramètre how peut être une des valeurs suivantes :

Valeurs possibles pour how
0 Empêche la lecture du socket
1 Empêche l'écriture du socket
2 Empêche l'écriture et la lecture du socket

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 3 notes

up
1
richard dot thomas at psysolutions dot com
11 years ago
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.
up
0
ludvig dot ericson at gmail dot com
12 years ago
Sockets should be first shutdown and then closed.
<?php
// Sample: Closing sockets gracefully
socket_shutdown($sock, 2);
socket_close($sock);
?>
up
-1
recycling dot sp dot am at gmail dot com
7 years ago
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.
To Top