2013-11-21 109 views
0
  1. 我使用庫http://phpseclib.sourceforge.net/ssh/intro.htmlSSH流和睡眠

  2. 我的腳本通過雙向xml流與遠程服務器進行通信。

  3. 它使用庫的函數read()每隔30秒讀取另一塊數據。在這期間,我的腳本做別的+ sleep()

現在可以說,它是,我的腳本錯過一些數據,因爲它「睡」,而他們來了?那可能嗎?還有什麼可能會錯過通過流傳入的數據?

回答

1

如果您指的是PHP(客戶端)上的sleep(),那麼這是一個SSH客戶端是在您的線程下還是在它自己的線程下運行的問題。

如果它是你的線程,那麼它可能會丟失數據,如果它在它自己的線程上,它不會等待你回來。

注意:做你正在做的事情將會非常不穩定,一些SSH服務器會在一定的空閒時間後斷開你的連接,以及不發送/接收數據的連接可能會終止。

0

如果您在客戶端每隔30秒超時,服務器可能會在比沒有讀取或發送數據包的時間短的時間內超時。

真正有用的是你正在運行的命令,你期望的輸出和你回來的輸出。這將使診斷問題更容易。