我在Java上使用简单的客户端 - 服务器应用程序。 我有2台电脑。第一个(服务器)在ubuntu上,第二个是windows8(客户端)。 两台机器都连接到同一个网络,同一个路由器。 当我通过“短”ip在客户端创建套接字时 - 像这样
socket = new Socket(InetAddress.getByName("192.168.1.7"),4444);
效果很好 - 没问题。但是,当我尝试这样做时 -
socket = new Socket(InetAddress.getByName("95.188.199.188"),4444);
使用公共IP(据我所知)。后者 - 不起作用。 防火墙 - 关闭。 有什么问题?
答案 0 :(得分:4)
因为如果您在内部网络中,则无法使用公共IP。
这通常是由于路由器的默认配置。 路由器不会使用公共IP来解析“内部”请求。
答案 1 :(得分:2)
无论防火墙如何,互联网都会始终看到您的路由器,而不是本地机器;您必须配置路由器以将所需端口转发到正确的本地计算机。
答案 2 :(得分:0)
尝试0.0.0.0。它的所有可用接口。