当前位置: 首页 > 面试题库 >

是否可以确保绑定到Java中的0.0.0.0绑定到所有网络接口?

壤驷向明
2023-03-14
问题内容

我凭经验发现

Endpoint endpoint1 = Endpoint.create(new Ping());
endpoint1.publish("http://0.0.0.0:8080/ws/ping");

绑定到当前计算机上的所有网络接口(而不仅仅是localhost-127.0.0.1或主机名),但是我无法找到说明这是可以保证的文档。

问题:在Java中绑定到0.0.0.0的定义将始终绑定到所有网络接口?


问题答案:

使用0.0.0.0将仅绑定到启用IPv4的接口。但是,如果绑定到::,则假定您的TCP /
IP堆栈(和Java)启用了IPv4兼容的IPv6套接字,则该协议应涵盖所有IPv4和IPv6接口。

您需要查看内核(或套接字库(如果在Windows上,则为套接字库))以获取“为什么”的解释。在我的OS X系统上,man页面对此进行了说明。

man 4 inet`开始

可以使用本地地址创建套接字,INADDR_ANY以对传入消息进行“通配符”匹配。在一个地址 连接(2)SENDTO(2)
呼叫可被给定为INADDR_ANY指“该主机”。INADDR_BROADCAST如果配置的第一个网络支持广播,则将可分辨地址用作主网络上广播地址的简写。

来自 man 4 inet6

可以使用本地地址::(等于IPv6 address 0:0:0:0:0:0:0:0)创建套接字,以影响传入消息的“通配符”匹配。



 类似资料:
  • 问题内容: 这是哪里来的 当我第一次学习jQuery时,通常会附加如下事件: 在学习了更多关于选择器速度和事件委托的知识之后,我在几个地方读到“ jQuery事件委托将使您的代码更快。” 所以我开始写这样的代码: 这也是复制已过时的.live()事件的行为的推荐方法。这对我来说很重要,因为我的许多站点始终都在动态添加/删除小部件。上面的行为与.live()并不完全一样,因为只有添加到已经存在的容器

  • 建议的解决方案之一是注意在端口80(netstat-ano)上运行的PID,将其关闭并启动Apache,这已经为许多其他人解决了问题。但对我来说,Apache本身运行在端口80上,当我启动服务时,我会得到套接字不可用错误。我试着把端口改成8080或其他,但没有运气。请告诉我我错在哪里? 准确错误消息: C:\Program Files(x86)\Apache Software Foundation

  • 问题内容: 我正在使用./standalone.sh在独立模式下运行JBoss AS7。这会将JBOSS绑定到仅本地主机。有没有办法将它绑定到所有主机,我的意思是0.0.0.0。 较早的版本具有-b选项来传递0.0.0.0,我在这里找不到要使用的任何选项。 问题答案: 编辑 standalone / configuration / standalone.xml 并插入标记 any-address

  • 问题内容: 我已经从WSDL文件生成了WCF客户端服务代理,该文件调用了第三方Java Web服务。现在,我需要配置绑定和代理来调用Web方法。 但是,我只有以下SOAP信息,用户名和密码以及客户端证书。我该如何解决需要做的事情? 是否有任何“反向配置”应用程序或教授所需技能的网站? 我想我的意思是“消息的这一部分转换为这种配置”。有人可以帮忙吗? 对于同一个项目,我问了这个问题,所以如果有人知道

  • 问题内容: 使用Netty时,令我感到惊讶的是,如果使用复用地址选项,它允许ServerSocket绑定到相同的地址而不会引发“已经绑定异常” 我只是以为reuseAddress允许新套接字重用关闭等待套接字,但这是不同的。以下是netstat命令的结果 我想念什么吗?这是怎么回事? 问题答案: 由于历史原因,我认为Windows允许这样做。这是一个安全问题。有关所涉及的选项如何交互的一些信息,请

  • 问题内容: 我正在编写代码以在两个Linux盒之间发送原始以太网帧。为了测试这一点,我只想获得一个简单的客户端发送和服务器接收。 我让客户端正确地制作了数据包(我可以使用数据包嗅探器看到它们)。 在服务器端,我像这样初始化套接字: 我用作ethertype的2字节常量在哪里,所以我听不到多余的网络流量。 当我将此套接字绑定到接口时,必须在socket_addr结构中再次将其传递给协议: 如果我像这