通过ServerSocket充当服务器的Java类是否可以在线托管?

时间:2016-01-25 21:39:22

标签: java cloud serversocket

我做了一个非常简单的命令聊天java基础应用程序。

虽然项目由一个作为服务器运行,另一个作为客户端发送套接字并从服务器接收套接字。

但是Server不是Servlet或任何其他类型,它只是一个简单的普通java类,它通过ServerSocket作为服务器...

如果可以在线托管(最好是云端),我怎么知道客户端要使用的新主机名? 端口是否会更改为???

服务器类

public class ServerDoor {
    public static void main(String args[]) throws IOException {
        final int portNumber = 81;
        ServerSocket serverSocket = new ServerSocket(portNumber);
        while (true) {...}
    }
}

客户端

public static void main(String args[]) throws IOException {
    final String host = "localhost"; // the host name!
    final int portNumber = 81;
    System.out.println("Creating socket to '" + host + "' on port " + portNumber);

    while (true) {...}
}

1 个答案:

答案 0 :(得分:0)

您可以在Windows Azure或Amazon EC2或其他云托管公司中托管您的服务器。客户端需要连接的主机名是服务器的IP地址或DNS名称。也许更改您的客户端以从命令行参数接受主机名和端口,而不是硬编码localhost。

您的服务器绑定的端口需要与客户端连接的端口相同。考虑使用命令行参数。

Java sockets tutorial也很有用。

最简单的入门方法是从云托管公司创建VM。您可以使用SSH to remote into your cloud VM来运行命令。如果您不熟悉命令行应用程序,则应该稍微调查一下。您必须知道如何从命令行运行Java程序。

拥有VM后,使用SCP或其他复制实用程序将Server Java jar或.class文件复制到云VM上。然后,您可以从云VM运行Server程序。确保您的云VM允许从您将使用的端口进行连接。您可以从托管VM settings的云端打开或关闭VM的端口。

在您的云VM中运行Server程序后,您可以连接到VM的主机名和端口。主机名将是您创建的VM实例的域名。创建VM时,您可能必须为其指定唯一名称。它也可能与您用于SSH进入机器的名称相同。