我需要自动化我们系统的几个功能,不幸的是这些功能没有 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 用法更有经验的人可以提供帮助:)