我花了一些时间学习 Java 套接字编程,并设法制作了几个使用套接字的简单应用程序。 (即时通讯、井字游戏、基本的东西)对于我的程序,我使用了带有 ServerSocket 和 Socket 类的客户端-服务器关系。到目前为止,我一直在同一台机器上测试我的所有游戏,这意味着客户端和服务器都在同一台机器上运行,我使用的套接字 ip 是 127.0.0.1。现在我想用同样的逻辑制作一个局域网游戏。一台计算机将作为服务器,另一台计算机将作为客户端。
我想问的是,如果这是一个愚蠢的问题,请原谅我,我并没有真正受过网络和诸如此类的教育,但是在什么条件下我可以在两台机器之间建立套接字连接。我的意思是,我在一台计算机上运行我的套接字服务器,我希望另一台计算机上的套接字使用第一台计算机的 ip 进行连接。比方说,我的 ip 是“192.1.1.4”,我希望能够连接到那台计算机。是否有可能在世界上任何两台计算机之间建立这样的连接?我知道“lan”代表“局域网”,但我对此一无所知。抱歉,这是一个愚蠢的问题,如果有人需要我,我可以澄清一下。
基本上,两台机器必须满足什么条件才能使用 Java 程序在它们之间建立套接字连接?
最佳答案
您可以在以下之间建立 TCP/IP 连接:
- 同一局域网内的两台机器(私有(private)IP)
- 两台有公网 IP 的机器
- LAN 中的一台机器和一台具有公共(public) IP 的机器,前提是打开了从 LAN 到公共(public) IP 的连接
您无法从 LAN 外部打开到 LAN 内部机器的直接 TCP/IP 连接,除非网关配置为将连接重定向到该机器的特定端口。
关于java - Java 局域网游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890059/