Почему метод DatagramSocket.joinGroup () принимает SocketAddress, если порт не имеет значения для многоадресной группы? - PullRequest
6 голосов
/ 27 февраля 2012

Мне просто любопытно. Это ошибка API? Когда вы присоединяетесь к группе многоадресной рассылки, вы НЕ используете порт, просто адрес многоадресной рассылки (IP), который является группой многоадресной рассылки, верно?

Разве это раздражает, есть ли когда-нибудь случай, когда будет использоваться ПОРТ?

1 Ответ

7 голосов
/ 28 февраля 2012

Вопрос лучше сформулировать следующим образом: «Почему DatagramSocket.joinGroup() принимает параметр SocketAddress, который может содержать номер порта?»

Номер порта в SocketAddress игнорируется. Многоадресная рассылка определяется исключительно в терминах IP-адресов. Я думаю, что причина использования SocketAddress заключается в том, что это может означать неразрешенный адрес, где InetAddress подразумевает разрешенный адрес, и вы не можете разрешить многоадресные адреса, но не заключайте меня в кавычки; -)

...