首页 > 解决方案 > 使用公共 ipv4 地址创建 HttpServer

问题描述

我正在通过 com.sun.net.httpserver 设置一个 HttpServer。我希望能够通过我的公共 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);

但它返回

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

标签: javahttpserveripv4

解决方案


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

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


推荐阅读