【问题标题】:Sockets, PHP, local port套接字、PHP、本地端口
【发布时间】:2014-03-05 15:02:54
【问题描述】:

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

实现协议基本可以工作,但下一步我需要知道创建套接字的本地端口。

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

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

提前感谢

阿德里安

编辑(代码 sn-p):

$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));

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

【问题讨论】:

  • 您需要一个代码 sn-p 以便人们能够帮助您。

标签: php sockets port


【解决方案1】:

我在php.net 中发现了一个函数。我认为这对你有用。

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

这里$ip 为您提供本地地址,$port 为您提供本地端口号。

【讨论】:

  • 非常感谢。这行得通!今晚我似乎没有理解该功能,因为我在浏览 php.net 时看到了它:-D
猜你喜欢
  • 1970-01-01
  • 2012-06-12
  • 2011-06-14
  • 2016-12-14
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2021-09-26
相关资源
最近更新 更多