Java中的局域网游戏

use*_*452 1 java sockets ip networking lan

我花了一些时间学习Java中的套接字编程,并设法制作了几个使用套接字的简单应用程序.(即时通讯,井字游戏,基本的东西)对于我的程序,我使用了与ServerSocket和Socket类的客户端 - 服务器关系.到目前为止,我一直在同一台机器上测试我的所有游戏,这意味着客户端和服务器都运行在同一台机器上,而我使用的套接字ip是127.0.0.1.现在我想使用相同的逻辑制作局域网游戏.一台计算机将成为服务器,另一台计算机将成为客户端.

我想问的问题,并原谅我,如果这是一个愚蠢的问题,我没有真正了解网络和诸如此类的东西,但在什么条件下我可以在两台机器之间建立套接字连接.我的意思是,我在一台计算机上运行我的套接字服务器,我希望另一台计算机上的套接字使用第一台计算机的ip进行连接.比方说,例如我的IP是"192.1.1.4"我希望能够连接到该计算机.是否有可能在世界上任何两台计算机之间建立这样的连接?我知道"局域网"代表"局域网",但除此之外,我对此一无所知.对不起,这是一个愚蠢的问题,如果有人需要我,我可以澄清一下.

基本上,我必须在两台机器上满足哪些条件才能使用Java程序在它们之间建立套接字连接?

pmo*_*eri 5

您可以在以下之间建立TCP/IP连接:

  • 同一局域网中的两台机器(私有IP)
  • 两台公共IP机器(互联网)
  • LAN中的机器和具有公共IP的机器提供了从LAN到公共IP的连接

除非网关配置为将连接重定向到该计算机的特定端口,否则无法从LAN外部打开到LAN内部计算机的直接TCP/IP连接.