我做了一个非常简单的命令聊天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) {...}
}
答案 0 :(得分:0)
您可以在Windows Azure或Amazon EC2或其他云托管公司中托管您的服务器。客户端需要连接的主机名是服务器的IP地址或DNS名称。也许更改您的客户端以从命令行参数接受主机名和端口,而不是硬编码localhost。
您的服务器绑定的端口需要与客户端连接的端口相同。考虑使用命令行参数。
最简单的入门方法是从云托管公司创建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进入机器的名称相同。