Java simple telnet client using socket
I have read a lot about this topic. Telnet is a protocol, not a simple socket connection, waiting for line breaks, using external libraries and so on
Most importantly, I need a fast and dirty Java telnet application to start and run. It is not necessarily extensible or beautiful, so I try to avoid using libraries, system function calls, etc I've been trying and testing. So far, when I try to log in to the router (via Telnet, of course), I get... No
This is a clip of the code I have used so far. Please point out my right direction, because I don't know what else to try, because I'm sure it must be a very simple and stupid thing. I'm missing Thank you in advance!
Socket socket = new Socket("192.168.1.1",23); socket.setKeepAlive(true); BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter w = new PrintWriter(socket.getOutputStream(),true); int c=0; while ((c = r.read()) != -1) System.out.print((char)c); w.print("1234\r\n"); // also tried simply \n or \r //w.flush(); //Thread.sleep(1000); while ((c = r.read()) != -1) System.out.print((char)c); w.print("1234\r\n"); //Thread.sleep(1000); while ((c = r.read()) != -1) System.out.print((char)c); socket.close();
Solution
If you don't test your specific router, it's hard to know what's wrong with your example Using libraries may be a good idea, for example http://sadun-util.sourceforge.net/telnet_library.html It looks easy to use
The website also says as follows:
String command="print hello"; PrintWriter pw = new PrintWriter( new OutputStreamWriter(s.getOutputStream()),true); pw.print(command+"\r\n");
Writer w = new OutputStreamWriter(s.getOutputStream()); w.print(command+"\r\n"); w.flush();
This may actually be a problem with your code