2013-11-21 5 views
0
  1. Я использую библиотеку http://phpseclib.sourceforge.net/ssh/intro.html.SSH поток и сон

  2. Мой сценарий связывается с удаленным сервером через двунаправленный поток XML.

  3. Он использует функцию библиотеки, чтобы читать еще один кусок данных каждые 30 секунд. Между мой скрипт делает что-то еще + sleep()

Теперь это может быть, что мой сценарий пропускает некоторые данные, так как он «спал», когда они пришли? Это возможно? Как еще он может пропустить данные, поступающие через поток?

ответ

1

Если вы ссылаетесь на sleep() на стороне PHP (клиента), то это вопрос о том, работает ли клиент SSH под вашим потоком или под его собственным потоком.

Если его нить, то да, он может пропустить данные, если это будет на его собственной ветке, он не будет ждать, пока вы вернетесь.

ПРИМЕЧАНИЕ. Выполнение того, что вы пытаетесь сделать, будет очень неустойчивым, некоторые SSH-серверы отключат вас после определенного количества времени простоя, а также соединение, которое не передает/recv-данные, скорее всего, будет прекращено ,

0

Если вы выбрали время, на стороне клиента, каждые 30 секунд, возможно, сервер выберет меньше времени, чем если бы никакие пакеты не были прочитаны или отправлены.

Что было бы действительно полезно - это команда, в которой вы работаете, вывод, который вы ожидаете, и вывод, который вы возвращаете. Это облегчит диагностику ваших проблем.

Смежные вопросы