函数名称:socket_getsockname()
适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7
函数说明:socket_getsockname()函数用于获取一个套接字的本地协议地址。
语法:bool socket_getsockname ( resource $socket , string &$addr [, int &$port ] )
参数:
- $socket: 必需。一个有效的套接字资源。
- $addr: 必需。用于存储本地协议地址的变量。通过引用传递,返回本地协议地址。
- $port: 可选。用于存储本地端口号的变量。通过引用传递,返回本地端口号。
返回值:成功时返回true,失败时返回false。
示例:
<?php
// 创建一个TCP套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// 绑定套接字到本地地址和端口
socket_bind($socket, '127.0.0.1', 8080);
// 获取本地地址和端口
if (socket_getsockname($socket, $addr, $port)) {
echo "本地协议地址:$addr\n";
echo "本地端口号:$port\n";
} else {
echo "获取本地地址和端口失败\n";
}
// 关闭套接字
socket_close($socket);
?>
输出结果:
本地协议地址:127.0.0.1
本地端口号:8080
以上示例演示了如何使用socket_getsockname()函数获取套接字的本地协议地址和端口号。首先,创建一个TCP套接字,并通过socket_bind()函数将其绑定到本地地址和端口。然后,使用socket_getsockname()函数获取套接字的本地协议地址和端口号,并将其存储在相应的变量中。最后,通过echo语句将本地协议地址和端口号输出到屏幕上。
请注意,示例中的套接字创建、绑定和关闭操作仅用于演示socket_getsockname()函数的使用方法,实际使用时可能需要根据具体需求进行调整。