java telnet端口,java使用telnet连接远程计算机

net use :http://www.jb51.net/article/24734.htm

源代码:  http://commons.apache.org/proper/commons-net/

/*  * Licensed to the Apache Software Foundation (ASF) under one or more  * contributor license agreements.  See the NOTICE file distributed with  * this work for additional information regarding copyright ownership.  * The ASF licenses this file to You under the Apache License, Version 2.0  * (the "License"); you may not use this file except in compliance with  * the License.  You may obtain a copy of the License at  *  *      http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ package com.uu.telnet; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import java.util.StringTokenizer; import org.apache.commons.net.telnet.TelnetClient; import org.apache.commons.net.telnet.TelnetNotificationHandler; import org.apache.commons.net.telnet.SimpleOptionHandler; import org.apache.commons.net.telnet.EchoOptionHandler; import org.apache.commons.net.telnet.TerminalTypeOptionHandler; import org.apache.commons.net.telnet.SuppressGAOptionHandler; import org.apache.commons.net.telnet.InvalidTelnetOptionException; /***  * This is a simple example of use of TelnetClient. An external option handler  * (SimpleTelnetOptionHandler) is used. Initial configuration requested by  * TelnetClient will be: WILL ECHO, WILL SUPPRESS-GA, DO SUPPRESS-GA. VT100  * terminal type will be subnegotiated.  *

 * Also, use of the sendAYT(), getLocalOptionState(), getRemoteOptionState() is  * demonstrated. When connected, type AYT to send an AYT command to the server  * and see the result. Type OPT to see a report of the state of the first 25  * options.  *

 *   * @author Bruno D'Avanzo  ***/ public class TelnetClientExample implements Runnable, TelnetNotificationHandler { static TelnetClient tc = null; /*** * Main for the TelnetClientExample. ***/ public static void main(String[] args) throws Exception { FileOutputStream fout = null; // 没有参数,退出 if (args.length < 1) { System.err .println("Usage: TelnetClientExample1 []"); System.exit(1); } // 数组第一个为ip String remoteip = args[0]; // 数组第二个为端口 int remoteport; if (args.length > 1) { remoteport = (new Integer(args[1])).intValue(); } else { remoteport = 23; } //将要输出的文件 try { fout = new FileOutputStream("spy.log", true); } catch (IOException e) { System.err.println("Exception while opening the spy file: " + e.getMessage()); } tc = new TelnetClient(); TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler( "VT100", false, false, true, false); EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false); SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true); try { tc.addOptionHandler(ttopt); tc.addOptionHandler(echoopt); tc.addOptionHandler(gaopt); } catch (InvalidTelnetOptionException e) { System.err.println("Error registering option handlers: " + e.getMessage()); } while (true) { boolean end_loop = false; try { tc.connect(remoteip, remoteport); Thread reader = new Thread(new TelnetClientExample()); tc.registerNotifHandler(new TelnetClientExample()); System.out.println("TelnetClientExample"); System.out.println("Type AYT to send an AYT telnet command"); System.out .println("Type OPT to print a report of status of options (0-24)"); System.out .println("Type REGISTER to register a new SimpleOptionHandler"); System.out .println("Type UNREGISTER to unregister an OptionHandler"); System.out .println("Type SPY to register the spy (connect to port 3333 to spy)"); System.out.println("Type UNSPY to stop spying the connection"); reader.start(); OutputStream outstr = tc.getOutputStream(); byte[] buff = new byte[1024]; int ret_read = 0; do { try { ret_read = System.in.read(buff); if (ret_read > 0) { if ((new String(buff, 0, ret_read)) .startsWith("AYT")) { try { System.out.println("Sending AYT"); System.out.println("AYT response:" + tc.sendAYT(5000)); } catch (IOException e) { System.err .println("Exception waiting AYT response: " + e.getMessage()); } } else if ((new String(buff, 0, ret_read)) .startsWith("OPT")) { System.out.println("Status of options:"); for (int ii = 0; ii < 25; ii++) { System.out.println("Local Option " + ii + ":" + tc.getLocalOptionState(ii) + " Remote Option " + ii + ":" + tc.getRemoteOptionState(ii)); } } else if ((new String(buff, 0, ret_read)) .startsWith("REGISTER")) { StringTokenizer st = new StringTokenizer( new String(buff)); try { st.nextToken(); int opcode = Integer.parseInt(st .nextToken()); boolean initlocal = Boolean.parseBoolean(st .nextToken()); boolean initremote = Boolean .parseBoolean(st.nextToken()); boolean acceptlocal = Boolean .parseBoolean(st.nextToken()); boolean acceptremote = Boolean .parseBoolean(st.nextToken()); SimpleOptionHandler opthand = new SimpleOptionHandler( opcode, initlocal, initremote, acceptlocal, acceptremote); tc.addOptionHandler(opthand); } catch (Exception e) { if (e instanceof InvalidTelnetOptionException) { System.err .println("Error registering option: " + e.getMessage()); } else { System.err .println("Invalid REGISTER command."); System.err .println("Use REGISTER optcode initlocal initremote acceptlocal acceptremote"); System.err .println("(optcode is an integer.)"); System.err .println("(initlocal, initremote, acceptlocal, acceptremote are boolean)"); } } } else if ((new String(buff, 0, ret_read)) .startsWith("UNREGISTER")) { StringTokenizer st = new StringTokenizer( new String(buff)); try { st.nextToken(); int opcode = (new Integer(st.nextToken())) .intValue(); tc.deleteOptionHandler(opcode); } catch (Exception e) { if (e instanceof InvalidTelnetOptionException) { System.err .println("Error unregistering option: " + e.getMessage()); } else { System.err .println("Invalid UNREGISTER command."); System.err .println("Use UNREGISTER optcode"); System.err .println("(optcode is an integer)"); } } } else if ((new String(buff, 0, ret_read)) .startsWith("SPY")) { tc.registerSpyStream(fout); } else if ((new String(buff, 0, ret_read)) .startsWith("UNSPY")) { tc.stopSpyStream(); } else { try { outstr.write(buff, 0, ret_read); outstr.flush(); } catch (IOException e) { end_loop = true; } } } } catch (IOException e) { System.err.println("Exception while reading keyboard:" + e.getMessage()); end_loop = true; } } while ((ret_read > 0) && (end_loop == false)); try { tc.disconnect(); } catch (IOException e) { System.err.println("Exception while connecting:" + e.getMessage()); } } catch (IOException e) { System.err.println("Exception while connecting:" + e.getMessage()); System.exit(1); } } } /*** * Callback method called when TelnetClient receives an option negotiation * command. *

*  * @param negotiation_code *            - type of negotiation command received (RECEIVED_DO, *            RECEIVED_DONT, RECEIVED_WILL, RECEIVED_WONT) *            

* @param option_code *            - code of the option negotiated *            

***/ // @Override public void receivedNegotiation(int negotiation_code, int option_code) { String command = null; if (negotiation_code == TelnetNotificationHandler.RECEIVED_DO) { command = "DO"; } else if (negotiation_code == TelnetNotificationHandler.RECEIVED_DONT) { command = "DONT"; } else if (negotiation_code == TelnetNotificationHandler.RECEIVED_WILL) { command = "WILL"; } else if (negotiation_code == TelnetNotificationHandler.RECEIVED_WONT) { command = "WONT"; } System.out.println("Received " + command + " for option code " + option_code); } /*** * Reader thread. Reads lines from the TelnetClient and echoes them on the * screen. ***/ // @Override public void run() { InputStream instr = tc.getInputStream(); try { byte[] buff = new byte[1024]; int ret_read = 0; do { ret_read = instr.read(buff); if (ret_read > 0) { System.out.print(new String(buff, 0, ret_read)); } } while (ret_read >= 0); } catch (IOException e) { System.err.println("Exception while reading socket:" + e.getMessage()); } try { tc.disconnect(); } catch (IOException e) { System.err.println("Exception while closing telnet:" + e.getMessage()); } } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值