©
本文档使用
php.cn手册 发布
(PHP 5 >= 5.2.1)
stream_socket_shutdown — Shutdown a full-duplex connection
$stream
, int $how
)Shutdowns (partially or not) a full-duplex connection.
stream
An open stream (opened with stream_socket_client() , for example)
how
One of the following constants: STREAM_SHUT_RD
(disable further receptions), STREAM_SHUT_WR
(disable further transmissions) or
STREAM_SHUT_RDWR
(disable further receptions and
transmissions).
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 A stream_socket_shutdown() example
<?php
$server = stream_socket_server ( 'tcp://127.0.0.1:1337' );
$client = stream_socket_client ( 'tcp://127.0.0.1:1337' );
var_dump ( fputs ( $client , "hello" ));
stream_socket_shutdown ( $client , STREAM_SHUT_WR );
var_dump ( fputs ( $client , "hello" )); // doesn't work now
?>
以上例程的输出类似于:
int(5)Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9 int(0)
[#1] jgotti [2012-09-07 18:22:56]
Just a note to say that if you encounter problem closing some sockets using fclose in a multi client server, you should really give this one a try.
Spent a full day trying to resolve this issue using stream_socket_shutdown($clientStream,STREAM_SHUT_RDWR);
finally do the trick.