将ServerSocket绑定到外部IP

时间:2013-05-03 13:33:38

标签: java sockets

我已经构建了一个简单的服务器/客户端聊天应用程序,用于研究目的。 现在,当我使用默认构造函数ServerSocket server = new ServerSocket(18524);初始化我的服务器时,它在本地工作正常,而在客户端,我使用client = new Socket(servername, 18524)servername = "localhost";

我还想过如何在我的本地网络上使用它,即连接到192.168.x.x上托管的服务器。

问题是当我尝试将服务器绑定到外部IP地址时,即87.92.x.x

知道为什么这是hapening?

编辑:我做了以下事情,也许我还在遗漏一些东西。

server.bind(new InetSocketAddress("87.x.x.x", 18524));

我还在我的路由器上转发了端口18524(TCP和UDP),并确保我的Windows防火墙上的端口已打开。

我仍然接受:Exception in thread "main" java.net.BindException: Cannot assign requested address: JVM_Bind

1 个答案:

答案 0 :(得分:0)

您无法将套接字绑定到外部IP地址。您只能将其绑定到当前主机本地的IP地址。通常,您只需指定0.0.0.0。如果外部端口正确转发就足够了。