2015-09-29 2 views
0

Я пытаюсь создать соединение telnet-клиента (apache) с глобальным IP-адресом.Отключено подключение клиента Telnet - JAVA

Если я использую что-то вроде ниже, я могу установить соединение.

private TelnetClient telnet = new TelnetClient(); 

telnet.connect("172.xx.xxx.xx", port); 

Однако, написав что-то вроде ниже, я получаю сообщение об ошибке «connection failed error». ?

private TelnetClient telnet = new TelnetClient(); 

String host = "172.xx.xxx.xx"; 

telnet.connect(host, port); 

Любое предложение (я не мог найти ту же ошибку в форумах, и я новичок в задавать вопросы :))

+0

ли то, что вы пытаетесь подключиться, чтобы принять телнет соединения? – TZHX

+0

Ваш порт тот же самый? когда вы переписываете код? –

+0

есть такой же port. этот код для отправки некоторой команды/получения ответа на серверы. этот код находится рядом после создания соединения. когда я использую «telnet.connect (« 172.xx.xxx.xx », порт); все работает нормально: /. out = new PrintWriter (telnet.getOutputStream(), true); \t \t \t \t в новом = BufferedReader (новый InputStreamReader ( \t \t \t \t \t \t telnet.getInputStream())); – oguz

ответ

0

вот мой полный код;

public void connectionCreater(String host, int port,String uID,String pass, 
       String account, String password) { 
      try { 
       //telnet.connect("172.xx.xxx.xx", port); this is works. 
       telnet.connect(host, port); 
       out = new PrintWriter(telnet.getOutputStream(), true); 
       in = new BufferedReader(new InputStreamReader(
         telnet.getInputStream())); 
       if (readUntilThenExecute("login: ", uID + "\r")) { 
        if (readUntilThenExecute("Password: ", pass + "\r")) { 
         if (readUntilThenExecute("Enter User Name", account)) { 
          if (readUntilThenExecute("Enter Password", password)) { 
       //to do stuff   } 
         } 
        } 
       } 
      } catch (IOException e) { 
       out.close(); 
       try { 
        in.close(); 
       } catch (IOException y) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     } 

     public boolean readUntilThenExecute(String word, String command) { 
      try { 
       String result1 = ""; 
       char[] incoming = new char[2048]; 
       boolean check = true; 
       while (check) { 
        int lenght = in.read(incoming); 
        result1 = String.copyValueOf(incoming, 0, lenght); 
        System.out.println(result1); 
        if (result1.contains(word)) { 
         out.println(command); 
         check = false; 
        } 

       } 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       return false; 
      } 
      return true; 
     }  
+0

спасибо за внимание, я решаю проблему. мой коллега меняет записи db-хоста, я просто вижу в debug ... thx – oguz

0

использовать телнет 1.Install эту команду в терминале (Приложения/Аксессуары/Terminal):

sudo apt-get install xinetd telnetd 

2.Edit /etc/inetd.conf с помощью вашего любимого редактора файлов с корнем разрешение, добавьте следующую строку:

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd 

3.Edit /etc/xinetd.conf,make его содержания выглядеть следующим образом:

# Simple configuration file for xinetd 
# 
# Some defaults, and include /etc/xinetd.d/ 
defaults 
{ 
# Please note that you need a log_type line to be able to use log_on_success 
# and log_on_failure. The default is the following : 
# log_type = SYSLOG daemon info 
instances = 60 
log_type = SYSLOG authpriv 
log_on_success = HOST PID 
log_on_failure = HOST 
cps = 25 30 
} 

4.You может изменить телнет номер порта по редактированию/и т.д./услугам с этой линией:

telnet  23/tcp 

5.Если вы не удовлетворены по умолчанию configuration.Edit etc/xinetd.d/telnet, добавьте следующее:

# default: on 
# description: The telnet server serves telnet sessions; it uses 
# unencrypted username/password pairs for authentication. 
service telnet 
{ 
disable = no 
flags = REUSE 
socket_type = stream 
wait = no 
user = root 
server = /usr/sbin/in.telnetd 
log_on_failure += USERID 
} 

добавить эти строки, как вам нравится:

only_from = 192.168.120.0/24 #Only users in 192.168.120.0 can access to 
only_from = .bob.com #allow access from bob.com 
no_access = 192.168.120.{101,105} #not allow access from the two IP. 
access_times = 8:00-9:00 20:00-21:00 #allow access in the two times 
...... 

6.Use эту команду для запуска сервера Telnet:

sudo /etc/init.d/xinetd start