我完全不知道我做错了什么。大约一个月前,我将路由器设置为使用Java中的服务器/套接字连接。我刚刚回到我的公寓,并且在不同的区域使用不同ip的不同路由器。
使用我的ServerSocket连接到localhost(作为默认设置),然后连接到我从whatsmyip.org获取的ip作为客户端套接字的主机名,我不应该能够连接吗?
服务器和客户端在同一台计算机上运行,如果我将客户端的主机名切换到localhost,则连接完美。我有一个端口转发设置到我的计算机的IP地址,路由器为我(不是从whatsmyip.org)到端口1640,这是我在我工作的旧地方使用的。我在这里做错了什么?
编辑1:我正在使用DynDNS.com设置一个链接到我的计算机IP的主机名URL,然后我将所有客户端连接到该IP。客户端程序可以在任何地方的任何计算机上。在我切换路由器之前,这是完美的。我使用我的DynDNS帐户使用路由器的动态DNS功能,该帐户是在我的旧路由器和我的新路由器上设置的。所以基本上,我应该使用我的旧路由器?
答案 0 :(得分:1)
当您在内部网络上时,某些路由器不会路由外部IP。我有一个像这样的路由器。尝试从外部位置连接(让朋友尝试,连接到远程服务器并重新连接,或使用连接到3G无线设备等)。
但我不确定你的问题是否真的想从外面联系。如果你不这样做,就没有必要向前创建端口(实际上你只是让你的服务器不必要地向世界展示)。从LAN中的任何计算机使用本机的本地地址(192.168.x.x / 10.1.1。*等,具体取决于您的路由器)。