【发布时间】:2017-07-20 23:30:50
【问题描述】:
我正在使用以下方法创建 UDP 套接字:
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
当我使用 socket_getsockname 获取套接字名称时:
/**
* Get Source port (Refactored to allow unit testing)
*
* @return string
*/
private static function getSourcePort($sock)
{
$addr = null;
$port = null;
socket_getsockname($sock, $addr, $port);
return $port;
}
返回的端口始终为 0,地址为 0.0.0.0
如何正确获取绑定端口?
【问题讨论】:
-
这里返回的端口始终为0,地址为0.0.0.0
-
嗯,是的,你正在创建套接字,但你没有连接它:
socket_connect($sock, $server_ip_here, $port_here);之后它应该返回正确的 ip 和端口。