Newsgroup: it.comp.java
Titolo: Java & Telnet

Ciao a tutti,
Dovendo fare una piccola app (e non essendo certo guru di Java), vorrei
sapere se e' disponibile
una classe che permetta di "telnettare" su un server Unix.
Scopo principale "elaborare" l'output di un file di log
So che potrei fare molto piu in fretta con il perl, ma preferirei utilizzare
Java
Grazie a chiunque mi dara' info
Dav

 una classe che permetta di "telnettare" su un server Unix.
http://jakarta.apache.org/commons/net/
Ciao
Marco

Ciao Marco,
Ti ringrazio per la riposta..
E' troppo chiedere un esempio??? (Es: mi connetto e do un "ls" ??)
Dalle doc della classe...non c'e' un esempio concreto col quale partire.
In ogni caso grazie comunque
Dav

 
io ho fatto questo come esercizio quando stdudiai i socket
si tratta di una classe che se la installi in due sistemi, permette a
questi di dialogare
non manda comandi, ma puoi sempre modificarla; questa manda e riceve
stringe (tipo chat)
puoi anche provarla su un solo pc, lanciandola due volte
Finestra1: 
specifica indirizzo 127.0.0.1 porta 3030
clicca SERVER
ora č in ascolo e tutto ciň che arriva te lo mostra
Finestra2: 
specifica indirizzo 127.0.0.1 porta 3030
clicca CONNECT (ora potresti trasmettere send da fin2 a fin1)
clicca anche qui SERVER (cosě lo fai bidirezionale)
Finestra1: 
clicca CONNECT 
ora con send anche da fin1 puoi spedire a fin2
se ti vuoi divertire a parlare con un server esterno potresti:
aprire una sola finestra
indirizzo es.: 
POP.TISCALI.IT
  porta 110, CONNECT
vedrai che risponde il server di posta con un OK...
e dialogare inviandogli con send: USER <la tua utenteza> 
e vedrai che ti risponderŕ chiedendoti la password, che potrai mandare
con PASS <tua pass>
ecc..
package Prove.Thread;
import java.awt.*;
import java.io.*;
import java.net.*;
public class testSocket extends Frame   {
    Label label1, label2, label3, label4;
    TextField textField1, textField2;
    TextArea textArea1, textArea2;
    Button button1, button2, button3, button4, button5,
button6,button7;
 
/*static LetturaF lettura;     
static ScritturaF scrittura;    */
static BaseConn baseConn;    
//          GET / HTTP/1.0
//--------------------------------------------------
public testSocket() {
        this.setLayout(null);
 
        label1 = new Label("Hosts:");
        label1.reshape(100, 20+10, 40, 15);
        this.add(label1);
        textField1 = new TextField();
        textField1.reshape(150, 20+10, 200, 20);
        this.add(textField1);
 
        label2 = new Label("Port:");
        label2.reshape(370, 20+10, 40, 15); 
        this.add(label2);
 
        textField2 = new TextField();
        textField2.reshape(410, 20+10, 60, 20);
        this.add(textField2);
 
 
 
        label3 = new Label("Da inviare:");
        label3.reshape(20, 20+25, 100, 15);
        this.add(label3);
 
        textArea1 = new TextArea();
        textArea1.reshape(20, 20+40, 560, 50);
        this.add(textArea1);
 
        label4 = new Label("Risposta:");
        label4.reshape(20, 20+95, 100, 15);
        this.add(label4);
        textArea2 = new TextArea();
        textArea2.reshape(20, 20+110, 560, 300);
        this.add(textArea2);
        button1 = new Button("Connect");
        button1.reshape(70, 20+430, 60, 20);
        this.add(button1);
        button2 = new Button("Send");
        button2.reshape(150, 20+430, 60, 20);
        this.add(button2);
        button3 = new Button("Receive");
        button3.reshape(230, 20+430, 60, 20);
        this.add(button3);
        button4 = new Button("Close");
        button4.reshape(310, 20+430, 60, 20);
        this.add(button4);
        button5 = new Button("Receive While");
        button5.reshape(390, 20+430, 100, 20);
        this.add(button5);
 
        button6 = new Button("clear");
        button6.reshape(500, 20+430, 60, 20);
        this.add(button6);
        button7 = new Button("SERVER");
        button7.reshape(500, 20+20+430, 60, 20);
        this.add(button7);
 
        resize(600, 500);
        show();
    }
//--------------------------------------------------
    public static void main(String args[]) {
            new testSocket();
    }
//--------------------------------------------------
    public boolean handleEvent(Event event) {
        if (
event.id
 == Event.WINDOW_DESTROY) {
            hide();         // hide the Frame
            dispose();      // tell windowing system to free resources
            System.exit(0); // exit
            return true;
        }
        if (event.target == button1 && 
event.id
 == Event.ACTION_EVENT)
{
            button1_Clicked(event);
        }
        if (event.target == button2 && 
event.id
 == Event.ACTION_EVENT)
{
            button2_Clicked(event);
        }
        if (event.target == button3 && 
event.id
 == Event.ACTION_EVENT)
{
            button3_Clicked(event);
        }
        if (event.target == button4 && 
event.id
 == Event.ACTION_EVENT)
{
            button4_Clicked(event);
        }
        if (event.target == button5 && 
event.id
 == Event.ACTION_EVENT)
{
 
        }
        if (event.target == button6 && 
event.id
 == Event.ACTION_EVENT)
{
            button6_Clicked(event);
        }
        if (event.target == button7 && 
event.id
 == Event.ACTION_EVENT)
{
            button7_Clicked(event);
        }        
        return super.handleEvent(event);
    }
//--------------------------------------------------
    void button1_Clicked(Event event) {
        baseConn = new BaseConn(textField1.getText(),
                                textField2.getText(),
                                textArea1, textArea2);
}
//--------------------------------------------------
    void button2_Clicked(Event event) {
        baseConn.send();
}
//--------------------------------------------------
void button3_Clicked(Event event) {
        baseConn.receive();
}
//--------------------------------------------------
    void button4_Clicked(Event event) {
        baseConn.close();
}
//--------------------------------------------------
 
//--------------------------------------------------
    void button6_Clicked(Event event) {
        textArea2.setText("");
    }
//--------------------------------------------------
    void button7_Clicked(Event event) {
        new SimpleServer   ();
    }
 
 
 
class BaseConn implements Runnable {
    TextArea commandArea, responseArea;
    Socket socket = null;
    PrintStream os = null;
    DataInputStream is = null;
//--------------------------------------------------
    public BaseConn(String host, String port,
                    TextArea commandArea, TextArea responseArea)  {
        this.commandArea = commandArea;
        this.responseArea = responseArea;
        try {
            socket = new Socket(host, Integer.parseInt(port));
            os = new PrintStream(socket.getOutputStream());
            is = new DataInputStream(socket.getInputStream());
            new Thread(this).start(); // avvio metodo run per nuovo
thread
            responseArea.appendText("***Connection established ed
attivata ricezione automatica" + "\n");
            responseArea.appendText("***pronto"+ "\n");
        } catch (Exception e)   {
            responseArea.appendText("Exception" + "\n");
        }
 
    }
        public void run() { //attivato come thread separato (esedita
comunque lo stesso ambiente)
        String inputLine;
        try {
            responseArea.appendText("***attesa risposta"+"\n");
            while ((inputLine = is.readLine()) !=null) {
                //inputLine = is.readLine();
                responseArea.appendText("Ricevuto="+inputLine + "\n");
            }
            responseArea.appendText("***FINE RICEZIONE"+"\n");
        } catch (IOException e) {
            responseArea.appendText("IO Exception in Attesa Ricezioni"
+ "\n");
        }
    }    
//--------------------------------------------------
    public void send() {
        responseArea.appendText("***Sent " +commandArea.getText()+
"\n");
        os.println(commandArea.getText());
        //responseArea.appendText("***pronto"+ "\n");
    }   
//--------------------------------------------------
    public void receive() {
        String inputLine;
        try {
            inputLine = is.readLine();
            responseArea.appendText(inputLine + "\n");
        } catch (IOException e) {
            responseArea.appendText("IO Exception" + "\n");
        }
    }   
//--------------------------------------------------
    public void close() {
        try {
            is.close();
            os.close();
            socket.close();
            responseArea.appendText("***Connection closed" + "\n");
            responseArea.appendText("***pronto"+ "\n");
        } catch (IOException e) {
            responseArea.appendText("IO Exception" + "\n");
        }
    }   
}
 class SimpleServer   implements Runnable {
//--------------------------------------------------
    public SimpleServer  ()  { 
            new Thread(this).start(); // avvio metodo run per nuovo
thread
        }
 
     public void run() {
        ServerSocket server;
        Socket client;
        String inputLine;
        DataInputStream is = null;
        PrintStream os = null;
        //textArea2.setText("");
        int nP = Integer.parseInt((textField2.getText()));
        try {
            server = new ServerSocket( nP ) ;
            textArea2.appendText("***Accepting one connection...on
port "+nP+ "\n");
            client = server.accept(); //aspetta la chiamata
            server.close();
            textArea2.appendText("***Connection "+nP+" from one client
accepted.\n");
            is = new DataInputStream(client.getInputStream());
            os = new PrintStream(client.getOutputStream());
            os.println("ciao, sono il SimpleServer"+nP+": Welcome!");
            while ((inputLine = is.readLine()) != null) {
                textArea2.appendText(nP+"***ricevuto: " +
inputLine+"\n");
                //os.println("From SimpleServer: " + inputLine);   NON
RITRASMETTO
                //os.println("passo");
                //textArea2.appendText("***pronto\n");
            }
            is.close();
            os.close();
            client.close();
            textArea2.appendText("***Connection closed.\n");
        } catch (IOException e) {
            textArea2.appendText("***Errore nella connessione\n");
            e.printStackTrace();        
        }
 
        }         
 
 
  }
}