-1

我构建了一个简单的服务器/客户端聊天应用程序,用于学习目的。现在它在本地完美运行,而我使用默认构造函数初始化服务器,ServerSocket server = new ServerSocket(18524);而在客户端我正在使用client = new Socket(servername, 18524)whileservername = "localhost";

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

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

知道为什么会这样吗?

编辑:我做了以下事情,也许我仍然缺少一些东西。

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

4

1 回答 1

1

您不能将套接字绑定到外部 IP 地址。您只能将其绑定到当前主机本地的 IP 地址。大多数情况下,您只需指定 0.0.0.0。如果正确转发外部端口就足够了。

于 2013-05-03T19:11:00.707 回答