-
我使用图书馆http://phpseclib.sourceforge.net/ssh/intro.html.
-
我的脚本通过双向xml流与远程服务器通信。
-
它使用库的
read()
函数每隔30秒读取另一个数据块。在这中间,我的脚本做了其他事情+sleep()
现在,我的脚本会不会漏掉一些数据,因为它们来的时候它"睡着了"?这可能吗?否则它怎么会错过通过流传入的数据?
如果您在PHP(客户端)端引用sleep(),那么问题是SSH客户端是在您的线程下还是在自己的线程下运行。
如果它是你的线程,那么是的,它可能会错过数据,如果它在自己的线程上,它不会,它会等你回来。
注意:执行您尝试执行的操作将非常不稳定,一些SSH服务器会在一定的空闲时间后断开您的连接,并且不发送/recv数据的连接可能会终止。
如果您在客户端每30秒超时一次,那么服务器可能会在比没有读取或发送数据包的情况下更短的时间内超时。
真正有用的是您正在运行的命令、您期望的输出以及您正在返回的输出。这将使诊断您的问题变得更容易。