Php 提取数据udp端口

Php 提取数据udp端口,php,ubuntu,udp,Php,Ubuntu,Udp,我是新手 我在家里有一个设备,它可以测量电力消耗,并以纯文本的形式广播一些数据,我可以指定使用UDP和IP。 我使用netcat,当我将自己家中的PC指定为目标IP时,可以看到数据通过。 我想捕获数据并从中提取一些值,数据包的结构总是相同的。 有容易使用的工具吗? 我尝试了PHP,但无法使用我发现的任何示例,因此示例也将受到赞赏 Roni您尝试过该功能吗?文档页面中的一个小示例: <?php error_reporting(E_ALL | E_STRICT); $socket = soc

我是新手 我在家里有一个设备,它可以测量电力消耗,并以纯文本的形式广播一些数据,我可以指定使用UDP和IP。 我使用netcat,当我将自己家中的PC指定为目标IP时,可以看到数据通过。 我想捕获数据并从中提取一些值,数据包的结构总是相同的。 有容易使用的工具吗? 我尝试了PHP,但无法使用我发现的任何示例,因此示例也将受到赞赏
Roni

您尝试过该功能吗?文档页面中的一个小示例:

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;

我已经看过这个例子并尝试过了。我使用本地Apache服务器。使用sudonetstat-lpn | grep:9999,我可以看到这个答案udp0127.0.0.1:9999 0.0.0:*。当我使用Netcat时,我在9999上获取数据,但在本例中,页面只是挂起。浏览器上的错误是错误324(net::ERR_EMPTY_RESPONSE):服务器关闭了连接,但没有发送任何数据。这里的错误选项不多,但显然我犯了错误。在代码socket_bind($socket,'127.0.0.1',9999);。在浏览器上。如果我更改文件的内容只是为了回显某些内容,那么所有其他代码都会被注释掉。这是一个文件,设备位于哪个端口和哪个IP?传输设备?我没有办法知道。我可以从路由器获得IP,但不知道它使用哪个端口传输。我试着调试,我挂在这行socket\u recvfrom($socket,$buf,56,0,$from,$port);如果您可以在您这边调试,并且您有静态ip和开放端口,那么我可以将数据转移给您