PHP

PHP stream_context_create和stream_socket_client如何配合

小樊
102
2024-07-05 14:50:22
栏目: 编程语言

stream_context_create函数用于创建并返回一个流上下文资源,可以在流操作函数中使用,比如stream_socket_client函数。stream_socket_client函数用于在给定的传输层协议和主机地址上打开一个套接字连接。

要配合使用这两个函数,可以先使用stream_context_create创建一个流上下文资源,然后将这个资源作为stream_socket_client函数的第三个参数传入,以便在打开套接字连接时使用指定的上下文资源。

示例代码如下:

// 创建流上下文资源
$context = stream_context_create(array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false
    )
));

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

if (!$socket) {
    echo "Connection failed: $errstr ($errno)";
} else {
    fwrite($socket, "GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n");

    while (!feof($socket)) {
        echo fgets($socket, 1024);
    }

    fclose($socket);
}

在上面的示例中,我们创建了一个流上下文资源$context,关闭了SSL验证以便在本地开发环境中测试,然后使用stream_socket_client函数打开一个与www.example.com的TCP连接,并发送一个HTTP GET请求。接着我们读取响应内容并关闭连接。

0
看了该问题的人还看了