我最近开发了一个 Android 应用程序,Android 设备可以通过该应用程序与另一个运行该应用程序的 Android 设备进行通信。 通信通过套接字进行,因此我开发了一个在我的计算机上运行的服务器。
这是我的问题:
只要所有设备和 PC 都在同一个 LAN 中(例如通过同一个路由器连接),我 PC 上运行的服务器上的设备之间的通信就可以正常工作。
现在我想让服务器在线,这样 Android 设备就可以连接到“在线”服务器并从任何地方通过服务器相互通信。
我根本不知道如何让服务器联机运行。我该怎么做?
主要问题是,我了解本地客户端/服务器通信,但在“在线”领域没有经验。
最佳答案
与其说是编程问题,不如说是网络问题。您的服务器打开一个套接字,因此任何能够访问该套接字的人都可以使用。
您必须在路由器上进行重定向。问题是你的机器没有公共(public) IP,只有你的路由器有一个。因此,例如,当您的路由器在端口 21 上收到一个数据包时,它不知道如何处理它。您必须将其配置为“端口 21 必须重定向到本地 IP XXX”
您的调制解调器/路由器的公共(public) IP 也可以更改,具体取决于您的 ISP。如果你有一个固定的IP,它不会改变,否则你将不得不安装像dyndns这样的软件来获得与你的IP相关联的域名。
关于java - 如何将服务器设置为 "deploy"以便可以通过 Internet 访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483760/