ho modificato il codice .. ora riesco a leggere qualcosa anche se mi manca l'ultima riga della schermata del terminale dove c'è il prompt cosa che invece vedo invece vedo su putty ( in terminale telnet ), ma sopratutto non riesco a fare il write del comando.
jtelnet.java
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();
private jTNetRead read;
private jTNetWrite write;
@SuppressWarnings("static-access")
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 = 5000;
sock.connect(sockaddr, timeoutMs);
//invio dati
wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
//lettura dati
rd = new BufferedReader(new InputStreamReader(sock.getInputStream()));
read = new jTNetRead(rd);
write = new jTNetWrite(wr);
write.vwrite.add("help\n\r");
while (true) {
th.sleep(100);
}
} catch (Exception ex) {
Logger.getLogger(jtelnet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
jTNetRead.java
codice:
package ConnTelnet;
import java.io.BufferedReader;
import java.util.logging.Level;
import java.util.logging.Logger;
public class jTNetRead extends Thread {
BufferedReader br;
public jTNetRead(BufferedReader brs) {
br = brs;
this.start();
}
@Override
public void run() {
try {
String str = "";
do {
str = br.readLine();
System.out.println(str);
} while (!str.equals("stop"));
} catch (Exception ex) {
Logger.getLogger(jtelnet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
jTNetWrite.java
codice:
package ConnTelnet;
import java.io.BufferedWriter;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
public class jTNetWrite extends Thread {
BufferedWriter bw;
Vector vwrite = new Vector();
Thread th = new Thread();
public jTNetWrite(BufferedWriter bws) {
bw = bws;
this.start();
}
@Override
@SuppressWarnings("static-access")
public void run() {
try {
String str = "";
th.sleep(5000);
do {
if (!vwrite.isEmpty()) {
str = (String) vwrite.get(0);
vwrite.remove(0);
bw.write(str);
System.out.print(str);
} else {
th.sleep(100);
}
} while (!str.startsWith("exit") && vwrite.isEmpty());
} catch (Exception ex) {
Logger.getLogger(jtelnet.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Vector getVwrite() {
return vwrite;
}
public void setVwrite(Vector vwrite) {
this.vwrite = vwrite;
}
}
Qualcuna sa darmi una mano ?
grazie mille