Salve a tutti ..
sto cercando di realizzare una classe che mi gestisse la ricezione e l'invio di comandi sulla interfaccia telnet.
Pensavo che fosse semplice da realizzare con le java.net ma forse mi sbagliavo
io ho scritto questo codice e con esso vedo che al pc con il server telent mi ci collego ma poi non vedo ne l'output del telent ne riesco a inviare comandi
codice:
package ConnTelnet;
import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class jtelnet {
private BufferedWriter wr;
private BufferedReader rd;
private InetAddress addr;
private SocketAddress sockaddr;
private Thread th = new Thread();
public jtelnet(String ip, int port) {
try {
System.out.println("pio Telnet");
addr = InetAddress.getByName(ip);
sockaddr = new InetSocketAddress(addr, port);
Socket sock = new Socket();
int timeoutMs = 2000; // 2 secondi
sock.connect(sockaddr, timeoutMs);
//invio dati
wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
//lettura dati
rd = new BufferedReader(new InputStreamReader(sock.getInputStream()));
Read();
} catch (Exception ex) {
Logger.getLogger(jtelnet.class.getName()).log(Level.SEVERE, null, ex);
}
}
@SuppressWarnings("static-access")
private void Read() {
try {
wr.write("help\n");
while (true) {
th.sleep(100);
String rl = rd.readLine();
if (rl != null) {
if (!rl.equals(null)) {
System.out.println("'" + rl + "'");
}
}
}
} catch (Exception ex) {
Logger.getLogger(jtelnet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
nel mio main faccio
codice:
jtelnet term = new jtelnet("192.168.0.180", 23);
ora ho provato la connessione con il terminale putty e funziona , non capisco dove sto sbagliando.