【发布时间】:2011-05-15 20:35:24
【问题描述】:
我需要自动化我们系统的几个功能,遗憾的是这些功能没有 API,只有 telnet 命令。
所以,我发现了这个:http://www.geckotribe.com/php-telnet/,它本质上是 PHP 的 Telnet 类。
起初我遇到了奇怪的问题,因为它尝试登录太快,所以我在连接之间添加了额外的 sleep(2),并输入了用户名和密码。
现在的问题:似乎,在执行一个只输出单行的命令后,下一个(多行输出)将系统挂起 2 分 15 秒(在 Eclipse 调试模式下) , 到浏览器加载时的 1 分 20 秒(仅在我将超时设置为 180 秒后...)。
它发生的那一行是:$r.=fread($this->fp,1000);在类的 DoCommand() 函数中。
这是我尝试执行的脚本的 pastebin 链接,以及我最终得到的输出(经过修改以保护信息..)
代码:http://pastebin.com/TXEHWa05
输出:http://pastebin.com/mVFm5HM2
任何想法如何调试这个原因?到目前为止,我的项目中甚至不需要调试器:( 理想情况下,我希望最多在 5 秒内完成在 telnet 上执行 2-3 个命令。不要更多。 (因为一旦我们弄清楚这一点,我将添加断开用户连接等功能。
我希望对使用 fsockopen 的这种 PHP 用法有更多经验的人可以提供帮助:)
【问题讨论】: