stanislav писал(а):
Помогите, пожалуйста, разобраться с телнетом.
Хотел написать скрипт для автоматического отключения должников и "уперся" в самом начале.
Код:
import java.io.*;
import java.net.*;
import bitel.billing.server.util.telnet.*;
TelnetSession t1 = new TelnetSession("192.168.1.1", 6000);
try {t1.connect();}
catch (IOException e) {print("Connection Error");};
print ("END");
Соединение с сервером при выполнении скрипта происходит, это видно через "netstat -a".
Пишет 192.168.1.1:6000 ESTABLISHED.
Но дальше скрипт не выполняется. Лога выполнения нет. В server.log и server.error.log записей нет.
скрипт скорее всего висит, ожидая конечного символа .
соединитесь в консоли и покажите что вам выводит telnet (какое приглашение ) . Берете последний символ( symbol ) , укажите его в
t1.setEndString( symbol );
до вызова connect() ..
Вообще у вас он по ходу выполнения может меняется и эту нужно отслеживать ..Скорее всего там вам вначале нужно ":" , потом вводите логин , потом снова ждете ":", потом вводите пароль , потом уже ждать "#" и т.п . Т.е каждый раз нужно в правильных местах ставить setEndString. Если символ не меняется (обычно при вводе команд в конце всегда # ) , то можно уже не указывать setEndString.
И еще бывают ньюансы при работе с конкретным оборудованием . например mikrotik очень любит использовать команды для форматирования ansi-терминала - они вырезаются , но там нет чёткого конечного символа Приходится использовать setRegexp.