我从经验上发现了这一点
Endpoint endpoint1 = Endpoint.create(new Ping());
endpoint1.publish("http://0.0.0.0:8080/ws/ping");
Run Code Online (Sandbox Code Playgroud)
绑定到当前计算机上的所有网络接口(而不仅仅是localhost - 127.0.0.1或主机名),但我无法找到说明这是有保证的文档.
问题:在Java中定义绑定到0.0.0.0将始终绑定到所有网络接口?
mpo*_*llo 14
使用0.0.0.0仅绑定到启用IPv4的接口.但是,如果绑定::,应覆盖所有IPv4和IPv6接口,假设您的TCP/IP堆栈(和Java)启用了IPv4兼容的IPv6套接字.
你需要查看内核(或套接字库,如果你在Windows上),以解释"为什么".在我的OS X系统上,man页面解释了它.
来自man 4 inet:
可以使用本地地址INADDR_ANY创建套接字,以对传入消息实现"通配符"匹配.在一个地址连接(2) 或SENDTO(2)呼叫可被给定为INADDR_ANY指"该主机".如果配置的第一个网络支持广播,则允许区分地址INADDR_BROADCAST作为主网络上广播地址的简写.
来自man 4 inet6:
可以使用本地地址'::'(等于IPv6地址0:0:0:0:0:0:0:0)创建套接字,以影响对传入消息的"通配符"匹配.
| 归档时间: |
|
| 查看次数: |
9170 次 |
| 最近记录: |