我可以在网络上的某个地方托管我的 ServerSocket 或 Java 文件吗?

Can i host my ServerSocket or Java file somewhere on the web?

大家好。我正在 java 中编写一个聊天应用程序,效果很好。但是我能以某种方式在网络上托管我的服务器文件或 Serversocket 吗?我想做到这一点,以便我来自其他电脑的朋友可以使用客户端并连接到托管在网络上的服务器文件。那可能吗?我可以在线主持 File/socket 吗?

当您 运行 打开一个 ServerSocket 的 java 应用程序时,它会在您的本地计算机上打开一个端口并开始侦听传入连接。您如何处理这些连接取决于您编写的 java 代码的实现。

"web" 没有你想象的那么陌生。您自己的计算机可以在您正在谈论的网络上,人们可以连接到您的聊天服务。或者您可以选择将其托管在 AWS 服务器之类的服务器上。

以下方法假设您使用的是非常标准的 NAT 配置。

一旦您 运行 您的 java 应用程序,您需要确保其他计算机可以看到您,无论是在您的 LAN 内部还是在 Internet 外部。您想从尽可能靠近计算机的地方开始测试,然后开始向外扩展。

首先,您需要确保计算机的防火墙确实允许连接到您的 java 应用程序正在侦听的端口。

Opening ports in the Windows Firewall

Setting up and opening ports in Linux

现在您 LAN 上的计算机将能够连接到您的 java 程序。现在你需要出去一层,port forward your router。这太不标准了,所以我帮不了你太多,但是 Google 可以。

此时,此 Internet 上的任何人,只要知道您的 external ip 以及您的 java 应用程序正在侦听的端口,都可以连接到您的服务。

如果您选择在第三方托管服务上托管它,您将需要执行类似的步骤,但可能存在细微差别,您可以询问,或者再次 Google很棒的资源。