函数:stream_socket_get_name()
适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
用法:string stream_socket_get_name ( resource $handle , bool $want_peer )
参数:
- $handle: 必需,一个有效的套接字资源,通常通过 stream_socket_client() 或 stream_socket_server() 函数创建。
- $want_peer: 可选,如果设置为 true,则返回对方的套接字名称,如果设置为 false,则返回本地套接字名称。默认为 true。
返回值:返回指定套接字的名称,如果失败则返回 false。
示例:
// 创建一个 TCP 套接字连接到 example.com 的 80 端口
$socket = stream_socket_client("tcp://example.com:80", $errno, $errstr, 30);
if ($socket) {
// 获取本地套接字名称
$localName = stream_socket_get_name($socket, false);
echo "本地套接字名称: " . $localName . PHP_EOL;
// 获取对方套接字名称
$peerName = stream_socket_get_name($socket, true);
echo "对方套接字名称: " . $peerName . PHP_EOL;
// 关闭套接字连接
fclose($socket);
} else {
echo "连接失败: " . $errstr . " (" . $errno . ")";
}
输出:
本地套接字名称: tcp://192.168.1.100:12345
对方套接字名称: tcp://93.184.216.34:80
上述示例演示了如何使用 stream_socket_get_name() 函数获取本地套接字名称和对方套接字名称。首先,我们使用 stream_socket_client() 函数创建了一个 TCP 套接字连接到 example.com 的 80 端口。然后,我们分别使用 stream_socket_get_name() 函数获取了本地套接字名称和对方套接字名称。最后,我们关闭了套接字连接。
请注意,本地套接字名称是以 "tcp://" 开头的字符串,后面跟着 IP 地址和端口号。对方套接字名称也是以 "tcp://" 开头的字符串,后面跟着对方的 IP 地址和端口号。