downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

socket_strerror> <socket_set_option
[edit] Last updated: Fri, 10 Feb 2012

view this page in

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown受信、送信、または送受信用のソケットをシャットダウンする

説明

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

socket_shutdown() 関数は、socket から送られてくる受信、送信あるいはすべて(デフォルト)のデータを停止します。

パラメータ

socket

socket_create() で作成したソケットリソース。

how

how の値は以下のうちのひとつです。

how のとりうる値
0 ソケットの読み込みを停止します。
1 ソケットの書き込みを停止します。
2 ソケットの読み込み・書き込みを停止します。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。



socket_strerror> <socket_set_option
[edit] Last updated: Fri, 10 Feb 2012
 
add a note add a note User Contributed Notes socket_shutdown
recycling dot sp dot am at gmail dot com 16-Sep-2010 09: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-May-2009 02: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-Nov-2005 10: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 02-Sep-2005 01:13
Sockets should be first shutdown and then closed.
<?php
// Sample: Closing sockets gracefully
socket_shutdown($sock, 2);
socket_close($sock);
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites