stream_socket_shutdown
关闭全双工连接
适用 PHP 版本:PHP 4.3.0 及以上
stream_socket_shutdown 用于关闭一个已打开的流套接字连接。该函数可以关闭连接的读写操作,或者完全关闭连接,具体取决于提供的参数。
stream_socket_shutdown(resource $socket, int $how): bool
成功时返回 true,失败时返回 false。
以下是一个关闭已打开流套接字连接的示例:
$socket = stream_socket_client("tcp://www.example.com:80", $errno, $errstr); if ($socket) { // 发送一些数据 fwrite($socket, "GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n"); // 关闭写操作 stream_socket_shutdown($socket, STREAM_SHUT_WR); // 读取响应数据 while ($response = fgets($socket)) { echo $response; } // 关闭读写操作 stream_socket_shutdown($socket, STREAM_SHUT_RDWR); fclose($socket); }
首先,我们通过 stream_socket_client 打开一个到服务器的连接。接着使用 fwrite 向服务器发送一个 HTTP 请求。之后,使用 stream_socket_shutdown 关闭写入操作(STREAM_SHUT_WR),防止再向服务器写入数据。接下来,使用 fgets 读取服务器响应,最后使用 stream_socket_shutdown 关闭读写操作(STREAM_SHUT_RDWR),并通过 fclose 关闭套接字连接。