• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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.