我正在开发一款可以与电脑或其他玩家一起玩的游戏。 GUI是Swing,但与此无关。我的问题是:我如何连接网络中的其他玩家?如何创建与其他计算机(JAVA)的网络连接?
我熟悉像客户端/服务器,套接字等术语,我可以编写一个基本的客户端/服务器程序,但它只能从一台计算机运行。我不知道如何从电脑连接到这个网络,比如说,在全国各地的一半。
我正在开发一款可以与电脑或其他玩家一起玩的游戏。 GUI是Swing,但与此无关。我的问题是:我如何连接网络中的其他玩家?如何创建与其他计算机(JAVA)的网络连接?
我熟悉像客户端/服务器,套接字等术语,我可以编写一个基本的客户端/服务器程序,但它只能从一台计算机运行。我不知道如何从电脑连接到这个网络,比如说,在全国各地的一半。
您可能会设置一个隐藏您的本地IP地址从世界其他地方的路由器(查找NAT欲了解更多信息)。基本上,世界只会看到你的YOUR_ROUTER_IP,你的路由器负责将来自外部世界的所有IP数据包传送给你,反之亦然。您将需要更改您的路由器设置,以便您的计算机/服务器获取路由器IP地址。通过这种方式,您可以使用简单的套接字操作从世界上任何地方访问您的服务器应用 我希望这可以帮助。
我喜欢使用Kryonet进行网络连接,它工作得很好,并且有很好的文档。
你表示你知道如何使用客户端和服务器套接字,所以我只是抛出你应该尝试连接“真正的”IP地址而不是本地主机(127.0.0.1)。在本地网络上使用两台计算机,获取“服务器”计算机的IP地址,并使用该地址从客户端进行连接。
除非您有可能支持某些网络地址转换(NAT)防火墙,并且可能需要“打开”或“转发”您需要的端口,否则这将适用于全球各地。如果你需要更多关于NAT的信息,google和serverfault会很有帮助。
如果您的客户端和服务器位于同一台机器上,那么你可以使用回送地址(即127.0.0.1),在局域网中你可以用私有IP地址
Private ip address for LAN
CLASS A做的 - 10。 XXX
CLASS B - 172.16.0.0 - 172.31.255.255
C类 - 192.168.0.0 - 192.168.255.255
,你可以用这个LAN环境
若要通过互联网连接某人,您需要Public ip addresses
。 除了每个范围内的私人IP都是公共地址。
现在,如果你有一个服务器有一个static ip
那么它不会是一个客户端通过互联网从世界任何地方访问它的问题。
但如果通过局域网,并从网关访问互联网,那么就会出现一个NAT
,那么你将需要设置inbound and outbound traffic rules
在gateway
,为让客户端访问服务器。
+1参考NAT – kentcdodds