使用 public ipv4 地址创建 HttpServer

Create HttpServer with public ipv4 address

我正在通过 com.sun.net.httpserver 设置 HttpServer。 我希望能够通过我的 public ipv4 地址访问服务器。

我已经设法让它与 localhost 一起工作。

HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/", Main::server.setExecutor(null);
server.start();

我试过

InetAddress ip = InetAddress.getByName("83.180.65.342");
HttpServer server = HttpServer.create(new InetSocketAddress(ip, 8080), 0);

但是returns

java.ne.BindException: Cannot assign requested address: bind

您是在本地开发机器上执行此操作,而您的 public 机器实际上是其他地方的不同机器吗?那显然不行。

如果这是问题所在,请在安装时将您的 IP 地址设置为可配置的 属性,而不是对其进行硬编码。或者使用 getLocalHost()(并正确配置机器的网络和 DNS 选项,这样它就不会 return 127.0.0.1)。