java - 使用Java的广播监听器?

标签 java sockets broadcast

我的网络中运行着一个 DP(数据处理器,java 代码),并且有几个 C 客户端。 Client需要与DP通信进行数据交换。客户端需要使用广播发现来发现DP。客户端将广播一条消息,DP 将监听并响应可用性。我不确定如何在 Java 中为广播消息添加监听器,我尝试使用 DatagramSocket 但它要求端口号? DP 应监听任何端口上收到的广播消息。

最佳答案

除非客户端使用 ICMP 之类的东西,否则它们也需要端口。在普通的 TCP/IP 堆栈中,广播和多播是通过 UDP 完成的(是的,这就是 Java 语言中的 DatagramSocket),因此需要端口号。只需选择一个您喜欢的端口,使其灵活并为服务器和客户端提供配置选项。

当然还有其他选项,例如 DNS SRV records , multicast DNS/Bonjour 、自定义 IP 协议(protocol)等,但这些更难处理。

关于java - 使用Java的广播监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799346/

相关文章:

c - 使用recv()仅接收一个字节

java - net.schmizz.sshj.transport.KeyExchanger.waitForDone 超时(KeyExchanger.java :160)

java - 尝试将不在周末的日子添加到 fechaProceso(localDate) Java

java - 带有 try/catch 的返回语句

java - 限制房间数据库中的行数

android - 使用 LocalBroadcastManager 进行 'sticky' 广播

C 发送广播。需要修改IP源字段

java - 用Java中的一个循环解决codingBat Post4问题

sockets - so_reuseaddr相关的问题

c++ - boost::asio UDP 广播