Попытка подключиться к порту через SSH для тестирования программы Java - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь следовать учебнику в книге, чтобы создать простую программу, использующую объект 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.

...