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

stream_socket_get_name()函数—用法及示例

「 获取本地或者远程的套接字名称 」


函数: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 地址和端口号。

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