如何与其他计算机(JAVA)建立网络连接?

时间:2012-06-03 17:41:42

标签: java swing sockets connection

我正在开发一款可以与电脑或其他玩家一起玩的游戏。 GUI是Swing但与此无关。我的问题是:我如何与网络中的其他玩家联系?

我熟悉客户端/服务器,套接字等术语,我可以编写基本的客户端/服务器程序,但它只能从一台计算机上运行。我不知道如何从计算机连接到这个网络,比如说,在全国各地。

4 个答案:

答案 0 :(得分:3)

您可能正在设置路由器,该路由器会将您的本地IP地址隐藏在世界其他地方(有关此问题的更多信息,请查找NAT)。基本上,世界只看到您的YOUR_ROUTER_IP,您的路由器会负责将来自外​​部世界的所有IP数据包传送给您,反之亦然。您需要更改路由器设置,以便计算机/服务器获取路由器IP地址。这样,您可以使用简单的套接字操作从世界上任何地方访问您的服务器应用程序。 我希望这会有所帮助。

答案 1 :(得分:1)

我喜欢使用Kryonet进行网络连接,它运行良好且文档非常好。

答案 2 :(得分:1)

你表示你知道如何使用客户端和服务器套接字,所以我只是扔掉你应该尝试连接“真正的”ip地址而不是localhost(127.0.0.1)。在本地网络上取两台计算机,获取“服务器”计算机的IP地址,并使用该地址从客户端连接。

除了您可能在某些网络地址转换(NAT)防火墙后面并且可能需要“打开”或“转发”您需要的端口这一事实外,这将在全世界范围内工作。如果您需要有关NAT的更多信息,google和serverfault将非常有帮助。

答案 3 :(得分:0)

如果您的客户端和服务器位于同一台计算机上,那么您可以使用环回地址(即127.0.0.1),在局域网中可以使用私有IP地址

Private ip address for LAN

CLASS A - 10.x.x.x

CLASS B - 172.16.0.0 - 172.31.255.255

CLASS C - 192.168.0.0 - 192.168.255.255

您可以将其用于LAN环境

要通过互联网连接某人,您需要Public ip addresses。 除了每个范围内的私人IP之外的地址都是公共地址。

现在,如果你的服务器有一个static ip,那么客户端就可以通过互联网从世界各地访问它。

但如果它通过局域网,并从网关访问互联网,则会有NAT,那么您需要在inbound and outbound traffic rules设置gateway,让客户端访问服务器。