尝试通过SSH连接到端口以测试Java程序

时间:2019-01-24 04:15:47

标签: java ssh server port serversocket

我正在尝试按照书中的教程进行操作,以制作一个利用ServerSocket对象的简单程序。该程序只是尝试向客户端打印一条简单消息,并能够回显客户端键入的任何内容。我知道我使用的端口是打开的,因为我使用lsof -i:8189检查了端口的活动,这返回了事实我有一个程序在端口上监听。我现在还必须将端口连接到程序,因为从关闭终端的那一刻起,程序就完成了应做的事情。它关闭插座并终止。

这里的问题是,当我使用ssh测试我的程序时,什么也没出现,端口只是活动的,而应该输出的不是。我的代码在这里:

public class tutorial {

public static void main(String[] args) throws IOException {





    try(ServerSocket s = new ServerSocket(8189)) {

        try(Socket incoming = s.accept()) {

            InputStream inStream = incoming.getInputStream();
            OutputStream outStream = incoming.getOutputStream();

            try(Scanner in = new Scanner(inStream, "UTF-8")) {

                PrintWriter out = new PrintWriter(new OutputStreamWriter(outStream, "UTF-8"), true);

                out.println("Hey dude");

                boolean done = false;

                while(!done && in.hasNextLine()) {
                    String line = in.nextLine();
                    out.println("The line you typed is: " + line);
                    if(line.trim().equals("BYE")) {
                        done = true;
                    }
                }

            }
        }
    }

}

}

运行此程序时,我没有任何异常或问题。我使用以下格式的命令对其进行测试:ssh -p 8189 username@localhost。此后,除了端口和套接字已连接外,什么也没有发生。我做错了什么?开头的代码是否错误?还是我测试错了?一个快速的注意是,我为此使用telnet的书,但是mac只预装了ssh,所以我现在尝试使用ssh。

0 个答案:

没有答案