Я пытаюсь определить адрес получателя DatagramPacket
, полученного от неподключенного DatagramSocket
или MulticastSocket
. В частности, я хотел бы знать, был ли принятый пакет одноадресным или многоадресным / широковещательным.
Использование DatagramSocket#getLocalAddress()
не является адекватным, поскольку это указывает только на адрес, к которому был привязан сокет (если есть), а не на адрес, к которому был адресован отдельный полученный пакет.
Глядя на методы DatagramPacket
, DatagramSocket
и MulticastSocket
, кажется, нет никакого способа сделать это. Тем не менее, я хотел бы получить какое-то подтверждение, что это действительно так, прежде чем полностью отказаться. Это похоже на серьезный недосмотр API.
Другими словами, есть ли способ реплицировать функциональность механизма IPV6_RECVPKTINFO
(обрисовано в RFC3542) в стандартном Java?
Мне также было бы интересно, есть ли какие-либо нестандартные способы сделать это в Java.