生活随笔
收集整理的這篇文章主要介紹了
[转]java 组播
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 組播知識(shí)介紹:?http://blog.csdn.net/happy_david/article/details/1569209
?
2. java 組播實(shí)現(xiàn):來自:?http://blog.csdn.net/a352193394/article/details/7395600
下面來演示一下使用Java Socket的組播類實(shí)現(xiàn)一個(gè)組播的小案例
首先是接收端
?
[java]?view plaincopyprint?
package?com.bird.test;????import?java.net.DatagramPacket;??import?java.net.InetAddress;??import?java.net.MulticastSocket;??import?java.util.Date;??????????public?class?MulticastReceive?{??????????????public?static?void?main(String[]?args)?throws?Exception?{??????????test();??????}????????????public?static?void?test()?throws?Exception{??????????InetAddress?group?=?InetAddress.getByName("224.0.0.2");??????????int?port?=?8888;??????????MulticastSocket?msr?=?null;??????????try?{??????????????msr?=?new?MulticastSocket(port);??????????????msr.joinGroup(group);??????????????byte[]?buffer?=?new?byte[8192];??????????????System.out.println("接收數(shù)據(jù)包啟動(dòng)!(啟動(dòng)時(shí)間:?"+new?Date()+")");??????????????while(true){????????????????????????????????????DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length);??????????????????msr.receive(dp);??????????????????String?s?=?new?String(dp.getData(),0,dp.getLength());????????????????????????????????????System.out.println(s);??????????????}??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}finally{??????????????if(msr!=null){??????????????????try?{??????????????????????msr.leaveGroup(group);??????????????????????msr.close();??????????????????}?catch?(Exception?e2)?{????????????????????????????????????????}??????????????}??????????}??????}??????????}??
然后是發(fā)送端
?
?
[java]?view plaincopyprint?
package?com.bird.test;????import?java.net.DatagramPacket;??import?java.net.InetAddress;??import?java.net.MulticastSocket;??import?java.util.Date;??????????public?class?MulticastSender?{????????????public?static?void?server()?throws?Exception{??????????InetAddress?group?=?InetAddress.getByName("224.0.0.2");??????????int?port?=?8888;??????????MulticastSocket?mss?=?null;??????????try?{??????????????mss?=?new?MulticastSocket(port);??????????????mss.joinGroup(group);??????????????System.out.println("發(fā)送數(shù)據(jù)包啟動(dòng)!(啟動(dòng)時(shí)間"+new?Date()+")");????????????????????????????while(true){??????????????????String?message?=?"Hello?"+new?Date();??????????????????byte[]?buffer?=?message.getBytes();??????????????????DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length,group,port);??????????????????mss.send(dp);??????????????????System.out.println("發(fā)送數(shù)據(jù)包給?"+group+":"+port);??????????????????Thread.sleep(1000);??????????????}??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}finally{??????????????try?{??????????????????if(mss!=null){??????????????????????mss.leaveGroup(group);??????????????????????mss.close();??????????????????}??????????????}?catch?(Exception?e2)?{????????????????????????????????}??????????}??????}????????????public?static?void?main(String[]?args)?throws?Exception?{??????????server();??????}??}??
通過開啟多個(gè)接收端,然后開啟發(fā)送端,就可以實(shí)現(xiàn)組播的效果
轉(zhuǎn)載于:https://www.cnblogs.com/harrysun/p/3376869.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的[转]java 组播的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。