套接字,PHP,本地端口

时间:2014-02-08 01:21:15

标签: php sockets port

我正在使用现有系统的套接字编写基于PHP的客户端。

实现协议基本上是可行的,但是对于下一步,我需要知道创建套接字的本地端口。

在服务器上我有以下输出:Socket [addr = / Client-IP,port = 40546,localport = 1338]

要进行通信工作,我需要获取端口40546(或连接时的任何内容)。遗憾的是,由于各种原因,无法更改协议。

先谢谢

阿德里安

编辑(代码段):

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, 192.168.0.12, 1338);
// Need to know local socket port (e.g. 40546)
$socketport = ??????
$message = "somestring";
$message = $protocol->encode($message, $socketport);
socket_write($socket, $message, strlen($message));

这基本上就是这样。在创建和连接套接字后,我需要知道客户端上的端口,这意味着无需手动设置它。

1 个答案:

答案 0 :(得分:1)

我在php.net找到了一个函数。我认为这适合你。

socket_getsockname($socket, $ip, $port);
echo "ip: ".$ip;
echo "port: ".$port;

此处$ip为您提供本地地址,$port为您提供本地端口号。