文字

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdownShuts down a socket for receiving, sending, or both

说明

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

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

参数

socket

A valid socket resource created with socket_create() .

how

The value of how can be one of the following:

possible values for how
0 Shutdown socket reading
1 Shutdown socket writing
2 Shutdown socket reading and writing

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

用户评论:

[#1] recycling dot sp dot am at gmail dot com [2010-09-16 09:09:06]

Shutdown and SOL_TCP:
<?php
$a
socket_create(AF_INETSOCK_STREAMSOL_TCP);
socket_shutdown($a2)
?>

PHP Warning:  socket_shutdown(): unable to shutdown socket [107]: Transport endpoint is not connected 

Shutdown and SOL_UDP:
<?php
$a
socket_create(AF_INETSOCK_STREAMSOL_UDP);
socket_shutdown($a2)
?>

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.

[#2] richard dot thomas at psysolutions dot com [2005-11-23 10:20:35]

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.

[#3] ludvig dot ericson at gmail dot com [2005-09-02 13:13:29]

Sockets should be first shutdown and then closed.
<?php
// Sample: Closing sockets gracefully
socket_shutdown($sock2);
socket_close($sock);
?>

上一篇: 下一篇: