socket_shutdown
Description
The socket_shutdown of Sockets for PHP shuts down a socket for receiving, sending, or both.
Syntax
socket_shutdown(
Socket $socket,
int $mode = 2
): boolParameters
socket
A Socket instance created with socket_create().
mode
The value of mode can be one of the following:
| Value | Description |
|---|---|
| 0 | Shutdown socket reading |
| 1 | Shutdown socket writing |
| 2 | Shutdown socket reading and writing |
Return
Returns true on success or false on failure.
Examples
1 · socket
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5000;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$socket_write = socket_write($socket, $data);
if($socket_write === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_write: $socket_strerror");
}
$return = socket_shutdown($socket);
var_export($return);
//echo PHP_EOL;
socket_close($socket);
$length = 2048;
$socket_read = socket_read($clientsocket, $length);
if($socket_read === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_read: $socket_strerror");
}
//$return = socket_shutdown($clientsocket);
//var_export($return);
//echo PHP_EOL;
socket_close($clientsocket);
//$return = socket_shutdown($serversocket);
//var_export($return);
socket_close($serversocket);
true
2 · mode · 0
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5001;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$socket_write = socket_write($socket, $data);
if($socket_write === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_write: $socket_strerror");
}
$mode = 0;
$return = socket_shutdown($socket, $mode);
var_export($return);
//echo PHP_EOL;
socket_close($socket);
$length = 2048;
$socket_read = socket_read($clientsocket, $length);
if($socket_read === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_read: $socket_strerror");
}
//$return = socket_shutdown($clientsocket, $mode);
//var_export($return);
//echo PHP_EOL;
socket_close($clientsocket);
//$return = socket_shutdown($serversocket, $mode);
//var_export($return);
socket_close($serversocket);
true
3 · mode · 1
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5002;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$socket_write = socket_write($socket, $data);
if($socket_write === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_write: $socket_strerror");
}
$mode = 1;
$return = socket_shutdown($socket, $mode);
var_export($return);
//echo PHP_EOL;
socket_close($socket);
$length = 2048;
$socket_read = socket_read($clientsocket, $length);
if($socket_read === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_read: $socket_strerror");
}
//$return = socket_shutdown($clientsocket, $mode);
//var_export($return);
//echo PHP_EOL;
socket_close($clientsocket);
//$return = socket_shutdown($serversocket, $mode);
//var_export($return);
socket_close($serversocket);
true
4 · mode · 2
<?
$domain = AF_INET;
$type = SOCK_STREAM;
$protocol = SOL_TCP;
$serversocket = socket_create($domain, $type, $protocol);
if($serversocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$address = '127.0.0.1';
$port = 5003;
$socket_bind = socket_bind($serversocket, $address, $port);
if($socket_bind === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_bind: $socket_strerror");
}
$socket_listen = socket_listen($serversocket);
if($socket_listen === false)
{
$error_code = socket_last_error($serversocket);
$socket_strerror = socket_strerror($error_code);
die("socket_listen: $socket_strerror");
}
$clientsocket = socket_create($domain, $type, $protocol);
if($clientsocket === false)
{
$error_code = socket_last_error();
$socket_strerror = socket_strerror($error_code);
die("socket_create: $socket_strerror");
}
$socket_connect = socket_connect($clientsocket, $address, $port);
if($socket_connect === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_connect: $socket_strerror");
}
$socket = socket_accept($serversocket);
if($socket === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_accept: $socket_strerror");
}
$data = 'data';
$socket_write = socket_write($socket, $data);
if($socket_write === false)
{
$error_code = socket_last_error($socket);
$socket_strerror = socket_strerror($error_code);
die("socket_write: $socket_strerror");
}
$mode = 2;
$return = socket_shutdown($socket, $mode);
var_export($return);
//echo PHP_EOL;
socket_close($socket);
$length = 2048;
$socket_read = socket_read($clientsocket, $length);
if($socket_read === false)
{
$error_code = socket_last_error($clientsocket);
$socket_strerror = socket_strerror($error_code);
die("socket_read: $socket_strerror");
}
//$return = socket_shutdown($clientsocket, $mode);
//var_export($return);
//echo PHP_EOL;
socket_close($clientsocket);
//$return = socket_shutdown($serversocket, $mode);
//var_export($return);
socket_close($serversocket);
true
Links
Sockets
- socket_accept
- socket_addrinfo_bind
- socket_addrinfo_connect
- socket_addrinfo_explain
- socket_addrinfo_lookup
- socket_atmark
- socket_bind
- socket_clear_error
- socket_close
- socket_cmsg_space
- socket_connect
- socket_create
- socket_create_listen
- socket_create_pair
- socket_export_stream
- socket_get_option
- socket_getopt
- socket_getpeername
- socket_getsockname
- socket_import_stream
- socket_last_error
- socket_listen
- socket_read
- socket_recv
- socket_recvfrom
- socket_recvmsg
- socket_select
- socket_send
- socket_sendmsg
- socket_sendto
- socket_set_block
- socket_set_nonblock
- socket_set_option
- socket_setopt
- socket_strerror
- socket_write
- socket_wsaprotocol_info_export
- socket_wsaprotocol_info_import
- socket_wsaprotocol_info_release