Java 为什么可以';t通过公共ip访问服务器

Java 为什么可以';t通过公共ip访问服务器,java,Java,我正在Java上玩简单的客户机-服务器应用程序。 我有两台电脑。第一个(服务器)在ubuntu上,第二个是windows8(客户端)。 两台机器都连接到同一网络、同一路由器。 当我通过“短”ip在客户机上创建套接字时-如下所示 socket = new Socket(InetAddress.getByName("192.168.1.7"),4444); 它运行良好-没有问题。但当我试着这样做的时候- socket = new Socket(InetAdd

我正在Java上玩简单的客户机-服务器应用程序。 我有两台电脑。第一个(服务器)在ubuntu上,第二个是windows8(客户端)。 两台机器都连接到同一网络、同一路由器。 当我通过“短”ip在客户机上创建套接字时-如下所示

            socket = new Socket(InetAddress.getByName("192.168.1.7"),4444);
它运行良好-没有问题。但当我试着这样做的时候-

        socket = new Socket(InetAddress.getByName("95.188.199.188"),4444);
它使用公共ip(据我所知)。后一种——不起作用。 防火墙-关闭。
问题出在哪里?

因为如果您在内部网络中,就不能使用公共IP

这通常是由于路由器的默认配置。
路由器不会使用公共IP来解析“内部”请求。

因为如果您在内部网络中,则无法使用公共IP

这通常是由于路由器的默认配置。
路由器不会使用公共IP解决“内部”请求。

请尝试0.0.0.0。这是所有可用的接口。

尝试0.0.0.0。它是所有可用的接口。

无论防火墙如何,互联网都会看到你的路由器,而不是你的本地机器;您必须配置路由器以将所需端口转发到正确的本地计算机。

无论防火墙如何,Internet都会看到您的路由器,而不是本地计算机;您必须配置路由器以将所需端口转发到正确的本地计算机。

您在路由器中设置了端口转发吗?您在路由器中设置了端口转发吗?好的,我会让我的朋友连接到我的“服务器”。希望它能起作用。谢谢,我不是一个系统专家,但你可以改变路由器的配置,使之成为可能…好的,我会让我的朋友连接到我的“服务器”。希望它能起作用。谢谢,我不是系统专家,但你可以更改路由器的配置,使之成为可能。。。