函数名称:stream_socket_client()
适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
函数描述:stream_socket_client()函数打开一个网络或Unix域套接字连接。它提供了一种简单的方式来创建一个与远程服务器或本地套接字通信的连接。
语法:resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] )
参数:
返回值:如果连接成功,则返回一个打开的套接字资源。如果连接失败,则返回false。
示例:
// 连接到远程TCP/IP服务器
$socket = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if ($socket) {
// 发送HTTP请求
fwrite($socket, "GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n");
// 读取服务器响应
while (!feof($socket)) {
echo fgets($socket, 4096);
}
// 关闭连接
fclose($socket);
} else {
echo "连接失败:$errstr ($errno)";
}
// 连接到本地Unix域套接字
$socket = stream_socket_client("unix:///var/run/socket.sock", $errno, $errstr, 30);
if ($socket) {
// 发送自定义协议数据
fwrite($socket, "Hello, server!");
// 读取服务器响应
$response = fread($socket, 4096);
// 处理服务器响应
echo $response;
// 关闭连接
fclose($socket);
} else {
echo "连接失败:$errstr ($errno)";
}
以上示例展示了如何使用stream_socket_client()函数连接到远程TCP/IP服务器和本地Unix域套接字,并发送/接收数据。请根据实际情况修改目标套接字地址、发送的数据和处理响应的逻辑。