Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128

    telnet

    Buongiorno,
    qualcuno sa indicarmi una classe o altro per fare un client di telnet
    in java?
    vorrei fare un programmino che si connette in telnet ad un server e
    lanci dei comandi.
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Dovresti trovare tutto il necessario nel package java.net ... fondamentalmente c'è da lavorare con Socket.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ultimamente va di moda...
    Non è la prima discussione che viene aperta per questo argomento. Una ricerca ti avrebbe indicato la strada per risolvere.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128
    Ciao, in verità ho cercato ma non sono riuscito a far funzionare nulla di quello che ho trovato, quindi chiedevo se qualcuno aveva qualcosa di funzionante da poter anche modificare.
    grazie

  5. #5
    Ciao! Anche io ho lo stesso problema... Sono riuscito ad aprire un socket con connessione verso una macchina unix, ma al momento del login non riesco a passare le informazioni... Posto il mio programmino (che funziona se non viene richiesto il login...), se qualcuno può aiutarmi lo ringrazio subito!

    import java.net.*;
    import java.io.*;
    import java.awt.*;

    public class TCPClient {

    public static DataInputStream is;
    public static PrintStream os;

    public void start()throws IOException {
    //Connessione della Socket con il Server
    boolean ok=true;
    String s="";
    Socket socket = new Socket("xxx.xxx.xxx.xxx", 23);

    //Stream di byte da passare al Socket
    DataOutputStream os = new DataOutputStream(socket.getOutputStream());
    DataOutputStream os1 = new DataOutputStream(socket.getOutputStream());
    DataOutputStream os2 = new DataOutputStream(socket.getOutputStream());
    DataInputStream is = new DataInputStream(socket.getInputStream());
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

    String userInput = "user";
    System.out.print("Inserisco user: "+userInput+'\n');
    os.writeBytes(userInput + '\n'+'\r');
    String passInput = "pass";
    System.out.print("Inserisco pass: "+passInput+'\n');
    os1.writeBytes(passInput + '\n'+'\r');
    userInput = "touch MM";
    System.out.print("Inserisco comando: "+userInput+'\n');
    os2.writeBytes(userInput + '\n'+'\r');

    //Chiusura dello Stream e del Socket
    os.close();
    os1.close();
    os2.close();
    is.close();
    socket.close();
    }
    public static void main (String[] args) throws Exception {
    TCPClient tcpClient = new TCPClient();
    tcpClient.start();
    }

    }

    ai posteri l'ardua sentenza...
    Ali?? non sono meglio un paio di turboreattori?!?!??

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128
    utilizzando questa classe:
    http://sadun-util.sourceforge.net/

    riesco a fare il login ed il logout solo che non riesco a far nessuno comando...
    codice:
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    import org.sadun.util.*;
    import org.sadun.util.UnixLoginHandler.LoginIncorrectException;
    
    
    public class Telnet {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Socket s = null;
    		try {
    			s = new Socket("10.77.151.10",23);
    		} catch (UnknownHostException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}
    		UnixLoginHandler handler = null;
    		try {
    			handler = new UnixLoginHandler(s);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} 
    		handler.setSendInitialCRLF(false);
    		try {
    			TelnetInputStreamConsumer is = handler.doLogin("prova","prova");
    		}
    		catch (LoginIncorrectException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			System.out.print(e.toString());
    			System.exit(1);
    		}
    		catch (IOException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			System.exit(1);
    		} catch (OperationTimedoutException e) 
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			System.exit(1);
    		} 
    		String command="ls -al > prova.txt"; // Comando
    	     PrintWriter pw = null;
    		try {
    			pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			System.out.println(e.toString());
    		}		
    		pw.flush();
    	     pw.write(command+"\r\n");
    	     
    	     handler.doLogout();
    	}
    }

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Cosa vuol dire che non riesci a fare nessun comando?
    Da quel che vedo viene eseguito un "ls -al > prova.txt"... viene eseguito?

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128
    Originariamente inviato da powerdedalo
    Ciao! Anche io ho lo stesso problema... Sono riuscito ad aprire un socket con connessione verso una macchina unix, ma al momento del login non riesco a passare le informazioni... Posto il mio programmino (che funziona se non viene richiesto il login...), se qualcuno può aiutarmi lo ringrazio subito!

    import java.net.*;
    import java.io.*;
    import java.awt.*;

    public class TCPClient {

    public static DataInputStream is;
    public static PrintStream os;

    public void start()throws IOException {
    //Connessione della Socket con il Server
    boolean ok=true;
    String s="";
    Socket socket = new Socket("xxx.xxx.xxx.xxx", 23);

    //Stream di byte da passare al Socket
    DataOutputStream os = new DataOutputStream(socket.getOutputStream());
    DataOutputStream os1 = new DataOutputStream(socket.getOutputStream());
    DataOutputStream os2 = new DataOutputStream(socket.getOutputStream());
    DataInputStream is = new DataInputStream(socket.getInputStream());
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

    String userInput = "user";
    System.out.print("Inserisco user: "+userInput+'\n');
    os.writeBytes(userInput + '\n'+'\r');
    String passInput = "pass";
    System.out.print("Inserisco pass: "+passInput+'\n');
    os1.writeBytes(passInput + '\n'+'\r');
    userInput = "touch MM";
    System.out.print("Inserisco comando: "+userInput+'\n');
    os2.writeBytes(userInput + '\n'+'\r');

    //Chiusura dello Stream e del Socket
    os.close();
    os1.close();
    os2.close();
    is.close();
    socket.close();
    }
    public static void main (String[] args) throws Exception {
    TCPClient tcpClient = new TCPClient();
    tcpClient.start();
    }

    }

    ai posteri l'ardua sentenza...
    Prima di scrivere nel socket devi attendere che ti venga chiesto il login, poi la passwd ecc...

  9. #9
    Originariamente inviato da patrick82
    Prima di scrivere nel socket devi attendere che ti venga chiesto il login, poi la passwd ecc...
    E come lo faccio?
    Ringrazio subito per la risposta...
    Ali?? non sono meglio un paio di turboreattori?!?!??

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prova a sostituire il DataInputStream con un più consono BufferedReader in modo da poter leggere quello che il server ti dice, riga per riga.
    codice:
    BufferedReader br = new BufferedReader( new InputStreamReader( s.getInputStream() ) );
    ...
    String linea = br.readLine();   // Qui attendi che il server ti comunichi
                                    // qualcosa (la richiesta login?)
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.