我的网络中运行的DP(数据处理器,Java代码)和很少的C客户端。客户端需要与DP进行通信以进行数据交换。客户端需要使用广播发现来发现DP。客户端将广播DP将收听的消息并响应可用性。我不知道如何在Java中为广播消息添加监听器,我尝试使用DatagramSocket但它要求端口号? DP应该收听在任何端口上收到的广播消息。
答案 0 :(得分:1)
除非客户使用ICMP之类的东西,否则他们也需要一个端口。在普通的TCP / IP堆栈中,广播和多播是使用UDP完成的(是的,这是Java语言中的DatagramSocket
),因此需要端口号。只需选择一个您喜欢的端口,使其灵活,并为服务器和客户端提供配置选项。
当然还有其他选项,如DNS SRV
records,multicast DNS/Bonjour,自定义IP协议等,但这些选项要难得多。