如何为本地服务器指定完整的IP地址?

时间:2016-12-19 17:20:20

标签: java sockets networking

“Full ip”表示全局IP(我有一个静态)+本地ip(192.168.0.xxx - 我本地网络中的地址)。 我使用java.net.ServerSocketjava.net.Socket相对编写了简单的服务器和客户端应用程序。 在localhost它工作得很好。但我很高兴在我的本地网络(路由器)中的计算机上运行服务器应用程序,并使用客户端应用程序从任何地方连接到它。 建立连接如下:

Socket socket = new Socket(IP, PORT);

我尝试了我的绝对静态IP(但它是路由器ip),路由器ip +本地ip(192.168.0.100)它都无法正常工作。 如何在路由器本地网络中指定“服务器”的完整路径?

1 个答案:

答案 0 :(得分:2)

我认为你误解了IP地址。

任何IP地址都只是一个单一的IP地址。没有"亲戚" IP地址,就像在文件系统中有相对路径一样。

假设您有一个外部可见的路由器IP,例如136.23.75.30。然后,您有一个本地子网192.168.x.y,其中您自己的主机的地址为192.168.1.100,您的路由器的地址为192.168.1.1。

在这种情况下,当您从子网内部连接到主机时,您可以在子网上指定主机的地址192.168.1.100。

但是,当您从一般会员的Internet连接时,您可以连接的唯一IP是路由器的外部IP,由ISP提供。在我们的例子中它是136.23.75.30。任何从您自己子网之外的任何位置连接到192.168.1.100的尝试都将转到错误的主机或根本没有。

你怎么能完成你需要的东西?秘诀在于路由器的配置。您需要设置路由器以进行端口转发。基本上,您的路由器将在某个端口上接收传入连接(例如8888)并将该连接转换为与主机192,168.1.100的连接,例如,同一端口8888。

换句话说,外界认为它连接到136.23.75.30,而实际上路由器确保192.168.1.100正在响应。

假设这是一个家庭设置,您需要找到路由器的管理屏幕。您可以通过放置" http://192.168.1.1"进入浏览器的地址栏。在提供合适的身份验证(通常打印在路由器后面)后,您需要找到某种高级设置选项卡,并查找"端口转发"。在那里,您通常输入目标地址192.168.1.100以及源和目标端口(假设两者都是8888)。