0

我的路由器有一个 API,您可以在其中通过 Telnet 进行连接,除此之外还可以控制 Tellstick。我正在使用 PHP 连接到路由器。我可以执行命令,但是当我尝试使用 读取响应时socket_read,我只能得到其中的一部分。

这是使用 Windows 的 telnet 功能连接到路由器时的样子:http: //i.imgur.com/hnIrVQa.png。对命令的响应ts aliases有几行长。

当我尝试通过我的 PHP 脚本获得响应时,我只得到第一行ALIAS=´Hallway´.

我用来收听的代码如下所示:

function reply($insocket) {

    if (false !== ($bytes = socket_read($insocket, 2048, PHP_BINARY_READ))) {
        return "&nbsp;&nbsp;&nbsp;Reply: <code>$bytes</code> \n<br>";
    } else {
        return "socket_read() failed; reason: " . socket_strerror(socket_last_error($insocket)) . "\n";
    }

    /*
    while ($out = socket_read($insocket, 2048)) {
        return $out;
    }
    */
}

所有代码:http ://codepad.org/jykGgivv

4

1 回答 1

0

也许它超时了,在你的脚本顶部尝试这样的事情:

ini_set('default_socket_timeout', 300);

于 2013-09-05T17:59:05.133 回答