English | 简体中文 | 繁體中文
查询

stream_socket_shutdown()函数—用法及示例

「 关闭用 stream_socket_client() 或 stream_socket_server() 创建的套接字连接 」


函数名称:stream_socket_shutdown()

函数描述:stream_socket_shutdown() 函数关闭用 stream_socket_client() 或 stream_socket_server() 创建的套接字连接。

适用版本:PHP 4 >= 4.0.7, PHP 5, PHP 7

语法:bool stream_socket_shutdown(resource $stream, int $how)

参数:

  • $stream:必需,一个有效的套接字资源,通常使用 stream_socket_client() 或 stream_socket_server() 创建。
  • $how:必需,一个整数,用于指定关闭连接的方式。可选值有:
    • STREAM_SHUT_RD:关闭读取
    • STREAM_SHUT_WR:关闭写入
    • STREAM_SHUT_RDWR:同时关闭读取和写入

返回值:成功时返回 true,失败时返回 false。

示例:

// 创建套接字连接
$socket = stream_socket_client('tcp://www.example.com:80', $errno, $errstr, 30);

// 发送HTTP请求
$request = "GET / HTTP/1.1\r\n";
$request .= "Host: www.example.com\r\n";
$request .= "Connection: close\r\n\r\n";
fwrite($socket, $request);

// 关闭写入连接,继续读取服务器响应
stream_socket_shutdown($socket, STREAM_SHUT_WR);

// 读取服务器响应
$response = '';
while (!feof($socket)) {
    $response .= fgets($socket);
}

// 关闭读取连接
stream_socket_shutdown($socket, STREAM_SHUT_RD);

// 关闭套接字连接
fclose($socket);

上述示例演示了如何使用 stream_socket_shutdown() 函数在发送HTTP请求后关闭写入连接,并继续读取服务器的响应。首先,使用 stream_socket_client() 函数创建套接字连接,然后发送HTTP请求并关闭写入连接。接着,使用 fgets() 函数循环读取服务器响应,直到结束。最后,关闭读取连接并关闭套接字连接。

请注意,示例中的关闭连接顺序是先关闭写入连接,再关闭读取连接。这是因为在HTTP请求中,客户端先发送请求,然后等待服务器响应。因此,我们首先关闭写入连接以告知服务器请求已发送完毕,然后继续读取服务器的响应。

补充纠错
上一个函数: stream_supports_lock()函数
下一个函数: stream_socket_server()函数
热门PHP函数
分享链接