Вопрос лучше сформулировать следующим образом: «Почему DatagramSocket.joinGroup()
принимает параметр SocketAddress
, который может содержать номер порта?»
Номер порта в SocketAddress
игнорируется. Многоадресная рассылка определяется исключительно в терминах IP-адресов. Я думаю, что причина использования SocketAddress
заключается в том, что это может означать неразрешенный адрес, где InetAddress
подразумевает разрешенный адрес, и вы не можете разрешить многоадресные адреса, но не заключайте меня в кавычки; -)