2013-07-18 33 views
1

我需要在連接的客戶端上多播消息,但面臨一個問題。我曾嘗試下面的片段爲this鏈接:在java中多播消息的錯誤

String msg = "Hello"; 
InetAddress group = InetAddress.getByName("228.5.6.7"); 
MulticastSocket s = new MulticastSocket(6789); 
s.joinGroup(group); 
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), 
         group, 6789); 
s.send(hi); 

我得到一個異常:

java.net.SocketException: Not a multicast address 

我想:

  • 本地主機
  • 127.0.0.1
  • 192.168 .1.29(我的本地ip)

可能出了什麼問題。作爲這個主題的新手,我無法調試它。謝謝你的幫助。

+0

s.joinGroup(group)是不是正確的命令? –

+0

@ publ1c_stat1c沒有「設置組播組」這樣的操作。 – EJP

回答

1

您的代碼適用於我。

您不需要加入發送給它的組。只有收到它。但是,如果您加入,則需要指定一個有效的多播地址的IP地址。儘管它在您發佈的代碼中說了什麼,但顯然您的實際代碼不使用有效的多播地址。

+0

它現在可以工作,但它只能在兩個連接之間工作。是否有可能使其適用於一對多連接? –

+0

呃?多播*是一對多的。您可以擁有儘可能多的小組成員。他們所要做的就是加入團隊並接受。 – EJP