在EC2实例上部署Java服务器套接字。客户端套接字连接超时

时间:2019-01-22 16:34:30

标签: java sockets amazon-ec2 amazon-linux

当尝试从Java Websocket客户端连接到EC2实例中部署的Websocket服务器时,我面临超时。

该连接在我的本地计算机上工作正常,并且安全组允许所有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);
}

非常感谢您的帮助。

费利克斯

1 个答案:

答案 0 :(得分:0)

我建议:

  • 仔细检查防火墙设置
  • 尝试从客户端等ping / telnet服务器计算机。
  • 在套接字中使用InetAddress 对客户端代码进行初始化,因为您也可以使用其isReachable() 方法

我认为您还缺少服务器端的以下部分:

Socket socket = s.accept();

请参阅一些客户端/服务器套接字示例,例如: https://www.journaldev.com/741/java-socket-programming-server-client