函数名:socket_read()
适用版本:所有版本的PHP
用法:socket_read() 函数用于从套接字接收数据。它可以一次性读取指定长度的数据,或者读取直到遇到指定的结束字符为止。
语法:
string socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] )
参数:
- $socket:必需,一个有效的套接字资源,通过 socket_create() 或 socket_accept() 函数创建。
- $length:必需,要读取的最大字节数。
- $type:可选,读取数据的类型。默认为 PHP_BINARY_READ,表示以二进制方式读取数据。也可以指定为 PHP_NORMAL_READ,表示以普通文本方式读取数据。
返回值:成功时返回读取的数据(字符串类型),失败时返回 false。
示例:
// 创建一个 TCP/IP 套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// 连接到服务器
$result = socket_connect($socket, '127.0.0.1', 8080);
// 从套接字中读取数据(以二进制方式)
$data = socket_read($socket, 1024);
if ($data === false) {
// 读取失败
echo "读取数据失败:" . socket_strerror(socket_last_error($socket));
} else {
// 读取成功
echo "读取的数据:" . $data;
}
// 关闭套接字
socket_close($socket);
上述示例中,我们首先创建了一个 TCP/IP 套接字,然后使用 socket_connect() 函数连接到服务器。接下来,我们使用 socket_read() 函数从套接字中读取最多 1024 字节的数据(以二进制方式)。如果读取成功,我们打印出读取到的数据;如果读取失败,我们打印出错误信息。
注意:在实际使用中,需要根据具体的业务需求,适当调整参数和处理读取到的数据。