Surprisingly, on my Linux system, when connected to a localhost service using IPV4, stream_get_socket_name returns ::1 as the peer or local address. One would expect to get localhost or 127.0.0.1 but the ::1 IPV6 localhost is returned instead.
(PHP 5, PHP 7)
stream_socket_get_name — 获取本地或者远程的套接字名称
$handle
, bool $want_peer
)返回给定的本地或者远程套接字连接的名称。
handle
需要获取其名称的套接字连接。
want_peer
如果设置为 TRUE
,那么将返回 remote 套接字连接名称;如果设置为 FALSE
则返回 local 套接字连接名称。
套接字连接的名称。
Surprisingly, on my Linux system, when connected to a localhost service using IPV4, stream_get_socket_name returns ::1 as the peer or local address. One would expect to get localhost or 127.0.0.1 but the ::1 IPV6 localhost is returned instead.
Use this function to check current status of a connection:
<?php
$c=stream_socket_server("tcp://127.0.0.1:1100");
while(1){
if(is_resource($a=stream_socket_accept($c))){
# do something time-consuming
if(stream_socket_get_name($a,true)!==false){
fwrite($a,"Regards form Berlin");
}
}
} ?>