2009-04-09 3 views
0

Система пытается использовать telnet для сервера несколько раз. Есть ли вероятность, что процесс, пытающийся выполнить telnet, может произойти сбой из-за переполнения буфера? Моей ситуацией является программа perl в цикле, которая пытается 500 раз за 10 секунд открыть соединение telnet и закрытие.Telnet a server

+1

«500 раз за 10 секунд», почему? – Johan

ответ

0

Нам нужно будет увидеть программу Perl (и я предполагаю, что у вас есть это иначе, как вы знаете, что это Perl).

Одна из возможностей заключается в том, что скрипт Perl не распознает строки входа, представленные вашим telnet-демонами, и поэтому отключает соединение и повторяет попытку.

Я не уверен, почему вы думаете, что это переполнение буфера (если у вас нет информации, которой у нас нет). Мне кажется, что если Perl (интерпретатор, а не сценарий) имел переполнение буфера, он просто сработал бы и не было бы попыток (предполагая, что нет другого повторного скрипта).

Если вы считаете, что ваш сценарий имеет проблему переполнения буфера, снова нам нужно будет увидеть его, чтобы помочь вам.

+0

Мой скрипт предназначен для мониторинга, поэтому он должен открывать и закрывать соединение. его не закрывать. Мой вопрос заключается в том, будет ли telneting 500 раз (открытие и закрытие) в течение 10 секунд приведет к сбою моей программы. – 2009-04-09 04:18:54

+1

Мой следующий вопрос: почему вам нужно сильно ударить по telnetd. Вам действительно нужно получать уведомления о проблемах с сервером в течение 1/50 секунд после их возникновения. Не было бы более целесообразным попробовать раз в 10 секунд, например? – paxdiablo

1

Telnetting 500 раз за 10 секунд не должен прерывать вашу клиентскую программу, но я сомневаюсь, что ваши процессы telnet и входа на сервере могут не отставать от такого уровня скорости соединения. Вам нужно выяснить, как отключить telnet-соединение или переключиться на протокол, предназначенный для опроса, например SNMP.

Все, что сказано, вы не указали, какую библиотеку или программу Telnet вы используете, поэтому, безусловно, существует вероятность, что она глючит.

Короче говоря, я не думаю, что ваш прецедент действительно в спецификации для Telnet.

0

Почему вы не можете просто закрыть telnet-соединение?

Я бы открыл только одно соединение telnet и оставил его открытым и использовал его для отправки и получения данных. Если в заданный тайм-аут ответа нет, чем закрыть его и снова открыть.