1

我有一台服务器(debian lenny)、频谱分析仪,并且我已经从Steve Sharples 的网站下载了源代码集。有了这些 s。coudes 我能够连接到频谱分析仪 - 键入命令并获得响应。

例如:

my-atom:~/vxi11# ./vxi11_cmd 135.123.106.59
Input command or query ('q' to exit): *IDN?

我得到:Rohde&Schwarz,FSV-7,102004/007,1.50 SP1

我是否能够使用 PHP 连接到该服务器、编写命令并读取响应?我在考虑套接字,但我不确定是否是最佳选择。

非常感激任何的帮助。

谢谢,彼得

4

3 回答 3

0

您可以使用execshell_execsystemproc_open执行外部程序。

我会推荐 proc_open,它允许您为 stdin、stdout 和 stderr 设置管道。

查看 proc_open 链接。

于 2010-07-30T16:02:34.453 回答
0

你也可以这样做:

$result = `SOME_COMMAND_HERE`;
于 2010-07-30T16:06:28.613 回答
0

您可以将shell_exec与 netcat 结合使用:

<?php
$output = shell_exec('echo "TRAC? TRACE1" | netcat -q 1 135.123.106.59 5025');
echo "<pre>$output</pre>";
?>

请注意该-q 1选项,它会导致 netcat 等待 1 秒以获取答案。您不需要“设置”命令的等待时间。此外,*IDN?不需要等待时间,但许多其他查询命令需要

使用 netcat 进行此连接很危险地接近裸机。您可能想要编写一个捕获常见错误的 shell 脚本。然后,您可以改为使用 shell_exec 调用该脚本。

最好的方法当然是使用Steve Sharples 免费库并修改他的 cmd 示例以满足您自己的需要。

于 2014-03-25T16:08:59.030 回答