stream_socket_shutdown()
(PHP 5 >= 5.2.1, PHP 7)
Shutdown a full-duplex connection
说明
stream_socket_shutdown(resource $stream,int $how): bool
Shutdowns (partially or not) a full-duplex connection.
Note:The associated buffer, or buffers, may or may not be emptied.
参数
- $stream
An open stream (opened withstream_socket_client(), for example)
- $how
One of the following constants:
STREAM_SHUT_RD
(disable further receptions),STREAM_SHUT_WR
(disable further transmissions)orSTREAM_SHUT_RDWR
(disable further receptions and transmissions).
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
Astream_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)
参见
fclose()
关闭一个已打开的文件指针
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.