Развертывание сокета Java-сервера на экземпляре EC2.Тайм-аут соединения с сокетом клиента - PullRequest
0 голосов
/ 22 января 2019

Я сталкиваюсь с таймаутом при попытке подключиться от моего клиента java websocket к моему серверу websocket, который развернут в экземпляре EC2.

На моем локальном компьютере соединение работает нормально, а группа безопасности разрешает весь входящий трафик TCP.

Мое предположение, что мне не хватает сетевого шага.

Шаги, которые я выполнил для развертывания сокета моего сервера на EC2:

  • Запуск экземпляра EC2 (Amazon Linux)
  • Установка Java и Maven
  • Исполняемая команда mvn clean -X и mvn install
  • Исполняемая команда java -jar mywebserver.jar

-> результат: код работает в порту xxx

Создание сокета сервера:

    try {


        s = new ServerSocket(port); //listen on specified port

        Log.add("Port " + port + " address: " + s.getInetAddress() + ": server started");


    } catch (IOException ex) {
        Log.add("Server error " + ex + "(port " + port + ")");
        throw new Exception("Error "+ex);
    }

Клиентская сеть

public Client(String serverIp, int serverPort) throws UnknownHostException, IOException {
    s = new Socket(serverIp, serverPort);
}

Большое спасибо за вашу помощь.

Felix

1 Ответ

0 голосов
/ 22 января 2019

Я бы посоветовал:

  • Дважды проверить настройки брандмауэра
  • попытаться выполнить команду ping / telnet-сервер с клиента и т. Д.
  • Использовать InetAddress в вашемИнициализация сокета в клиентском коде, поскольку вы также можете использовать его метод isReachable ()

Я думаю, вам также не хватает следующей части на стороне сервера:

Socket socket = s.accept();

Пожалуйста, посмотрите некоторыепримеры сокетов клиент / сервер, например: https://www.journaldev.com/741/java-socket-programming-server-client

...