我正在尝试确定未连接的DatagramPacket
或DatagramSocket
上收到的MulticastSocket
的目标地址。具体来说,我想知道接收到的数据包是单播还是多播/广播。
使用DatagramSocket#getLocalAddress()
是不够的,因为这仅指示套接字绑定到的地址(如果有),而不是单个接收到的数据包所寻址的地址。
看一下DatagramPacket
,DatagramSocket
和MulticastSocket
的方法,似乎没有任何方法可以做到这一点。但是,我想在完全放弃之前确实如此。似乎是对API的主要监督。
换一种说法,有没有办法在标准Java中复制IPV6_RECVPKTINFO
机制的功能(在RFC3542中概述)?
如果Java中有任何非标准的方法,我也会对此感兴趣。