如何通过 Telnet 发送字符串?

Posted

技术标签:

【中文标题】如何通过 Telnet 发送字符串?【英文标题】:How to send a String via Telnet? 【发布时间】:2020-08-16 22:55:46 【问题描述】:

我想使用 Apache 的 TelnetConnection 将字符串发送到 Telnet 连接

import java.io.IOException;
import org.apache.commons.net.telnet.TelnetClient;

public class TestClass 
   public static void main(String[] args) throws IOException, InterruptedException 

        String telnetServer = "123.456.789.123";
        int telnetPort = 32106;
        TelnetClient telnet = new TelnetClient();
        try 
            telnet.connect(telnetServer, telnetPort);
            String start = "start";
            telnet.getOutputStream().write(start.getBytes());
            telnet.getOutputStream().flush();

            System.out.println(telnet.getInputStream());


         catch (Exception e) 
            System.out.println(e);
        finally 
            telnet.disconnect();
        
    

但是,我没有得到结果。在这种情况下如何使用输入和输出流? 命令 ("start") 应该开始记录 METUS INGEST 5.6。

【问题讨论】:

Telnet 之上的许多协议都是基于 line 的。也许您也应该发送换行符组合 ("\r\n")? 【参考方案1】:

感谢一些程序员老兄(https://***.com/users/440558/some-programmer-dude)。这完全完成了工作。

完整代码如下:

import java.io.IOException;
import org.apache.commons.net.telnet.TelnetClient;

public class TestClass 
   public static void main(String[] args) throws IOException, InterruptedException 

        String telnetServer = "123.456.789.123";
        int telnetPort = 32106;
        TelnetClient telnet = new TelnetClient();
        try 
            telnet.connect(telnetServer, telnetPort);
            String start = "start\r\n";
            telnet.getOutputStream().write(start.getBytes());
            telnet.getOutputStream().flush();

            System.out.println(telnet.getInputStream());


         catch (Exception e) 
            System.out.println(e);
        finally 
            telnet.disconnect();
        
    

您可以通过以下方式停止所有来源的录制:

String stop = "stop\r\n";
telnet.getOutputStream().write(stop.getBytes());
telnet.getOutputStream().flush();

【讨论】:

以上是关于如何通过 Telnet 发送字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过telnet发送回车?

如何通过 SSH 连接向 Telnet 发送命令

如何通过 telnet 发送 POST 请求

通过 telnet 发送击键

如何构建串联的短信 pdu?获取垃圾字符

telnet调用Dubbo接口的坑