java - 使用公共 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
解决方案
您是否在本地开发机器上执行此操作,而您的公共机器实际上是其他地方的不同机器?那显然行不通。
如果这是问题所在,请将您的 IP 地址设置为安装中的可配置属性,而不是对其进行硬编码。或者使用 getLocalHost() (并正确配置机器的网络和 DNS 选项,使其不会返回 127.0.0.1)。
推荐阅读
- dart - NoSuchMethodError:方法 'ancestorStateOfType' 在 null 上被调用
- python-3.x - Python 值错误:无法将字符串转换为浮点数据帧(如何找到值的位置)
- laravel-5.6 - 尝试创建“添加类别”字段。未找到 Laravel 错误列:
- linux - 生成文件上的 grep
- angular - 在 Angular 应用程序中调用 location.back() 时视图加载很长时间
- java - (Java 8) java.util.function.Supplier
- android - wordpress api中wp_posts的Json格式是什么?
- node.js - Passport.js, express.js, redirect methods (successRedirect and failureRedirect)
- php - How to Use $_get in WordPress by PHP snippets
- c# - How do I hide the panel on my button click?