999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java網絡編程中組播技術的應用與研究

2018-06-27 02:38:48舒小松
無線互聯科技 2018年5期

舒小松

摘 要:Java網絡編程技術是Java程序設計中重要的一個環節。Java程序設計中提供了很強大的跨平臺網絡庫的語言。組播技術在Java網絡編程中的應用很廣泛,它兼容單播和廣播的特點。當采用組播方式傳送數據包時,發送方只需要發送一份相同的數據包,通過路由器尋找組播組的地址,然后將數據發送到這個組的每一個主機中。它可以大大提高數據傳送效率,減少了核心網絡出現網絡擁塞的可能性。文章通過一個詳細的案例介紹了Java網絡編程中組播技術在Java平臺中的應用,并進行了相關的分析與研究。

關鍵詞:Java;組播;套接字;網絡編程

Java網絡編程技術是Java程序設計中重要的一個環節。Java程序設計中提供了很強大的跨平臺網絡庫的語言。Java網絡編程中組播技術應用很廣泛,它是IP網絡數據傳輸3種方式之一,組播解決了單播和廣播方式效率低的問題。目前IPv4組播地址的范圍為224.0.0.0到239.255.255.255之間。

1 組播Socket介紹

在Java中,要使用Java.net中的MulticastSocket類來組播數據[1]。具體的步驟如下:首先,創建一個MulticastSocket。其次,用MulticastSocket的ijoinGroup()方法加入到一個組播組。再次,創建一個DatagramPacket,用字節數組作為數據緩沖區,并放入循環體繼承DatagramPacket類的receive()方法,不需要接收數據時調用該Socket的leaveGroup()方法離開組播組,然后用繼承DatagramPacket類的close()方法關閉該Socket。注意:如果向組播地址發送數據可以不需要加入組播組,可以創建一個新的DatagramPacket,在其中填充數據和組播組的地址,并傳輸send()方法即可。

2 Java組播Socket網絡編程的應用與研究

2.1 前期的基本操作

安裝好JDK以及Eclipse軟件。進入Eclipse,編寫相關Java源程序。

2.2 創建接收端類MulticastReceive

2.2.1 創建組播地址和端口

(1)需要創建一個組播地址。

InetAddress group - InetAddress.getByName(”228.0.0.1”);

(2)需要創建一個端口。

int port= 8000;

上述代碼中,組播地址為228.0.0.1,端口為8000。

2.2.2 創建組播套接字并加入到組播組

(1)創建一個組播套接字。

MulticastSocket msr -new MulticastSocket(port);

(2)加入到一個組播組。

msrjoinGroup(group);

一旦創建了MulticastSocket就可以完成加入組播組、向組中任何成員發送數據、接受組中任何成員的數據、離開該組播組等4種操作。

2.2.3 創建一個指定緩沖區大小組播數據包

byte[] buffer= new byte[8192];

DatagramPacket dp=new DatagramPacket(buffer,buffer.length);

2.2.4 接受組播數據包

msr.receive(dp);

2.2.5 解碼組播數據包提取信息

String s=new String(dp.getData(),O,dp.getLength(》;

接收端代碼如圖1所示。

2.3 創建發送端類MulticastSend

2.3.1 創建組播地址和端口

(1)需要創建一個組播地址。

InetAddress group = InetAddress.getByName(”228.0.0.1”);

(2)需要創建一個端口。

int port= 8000;

需要注意的是發送端的組播IP地址和端口需要和接收端的IP地址及端口一致。

2.3.2 創建組播套接字并加入到組播組

MulticastSocket mss - new MulticastSocket(port);

mssjoinGroup(group);

2.3.3 建立一個指定緩沖區大小及組播地址和端口組播數據包

byte口buffer= message.getBytes();

DatagramPacket dp=new DatagramPacket(buffer,buffer.length,group,port);

mss.send(dp);

其中send()方法的作用是用于發送DatagramSocket對應的數據包。注意的是如果不需要接收數據時調用該Socket的leaveGroup()方法離開組播組,并關閉Socket。發送端代碼如圖2所示。

3 結語

通過Java Socket網絡編程中Java組播Socket的應用研究,使我們對Java Socket網絡編程有了新的認識,并得出結論。編寫一個Java組播應用程序需要完成如下過程[2]。

(1)創建一個MulticastSocket組播套接字對象,為發送端和接收端使用。

(2)創建一個DatagramPacket組播數據包對象,需要指定其緩沖區大小及組播地址和端口。注意發送端和接收端中組播地址和端口一致。

(3)使用組播套接字joinGroup(),將其加入到同一個組播。

(4)將組播數據包對象放入其中,組播套接字的send()方法中或者組播套接字的receive()方法中發送組播數據包或者接收組播數據包。

(5)解碼組播數據包提取信息,并依據得到的信息作出響應。

(6)在while循環中重復步驟4和5。

(7)使用組播套接字的leaveGroup()方法,離開組播組并關閉組播套接字。

運行結果如圖3所示,接收端準備好以后,發送端就一直會發送數據,實驗成功。

[參考文獻]

[1]哈諾德.Java網絡編程[M]李帥,荊濤,譯北京:中國電力出版社,2014.

[2]馬曉敏,肖明,姜遠明,等Java網絡編程原理與JSP Web開發核心技術[M].北京:中國鐵道出版社,2010.

主站蜘蛛池模板: 色妞www精品视频一级下载| 中文天堂在线视频| 亚洲日韩久久综合中文字幕| 亚洲欧美色中文字幕| 日本三级精品| 亚洲av无码牛牛影视在线二区| 91免费国产在线观看尤物| 亚洲AV无码乱码在线观看裸奔| 夜夜拍夜夜爽| 午夜视频免费试看| 欧美日韩一区二区在线播放| 熟女日韩精品2区| 中文字幕无线码一区| 午夜a视频| 欧美日韩一区二区三区四区在线观看 | 久久毛片网| 日本高清免费不卡视频| 国产精品原创不卡在线| 六月婷婷精品视频在线观看| 在线欧美日韩国产| 亚洲国产成人精品青青草原| 国产91蝌蚪窝| 免费看一级毛片波多结衣| 日韩欧美成人高清在线观看| 国产免费福利网站| 91精品综合| 免费看美女自慰的网站| 亚洲视频免费在线| 72种姿势欧美久久久大黄蕉| 五月婷婷精品| 国产日韩丝袜一二三区| 在线欧美一区| 国产精品人人做人人爽人人添| 国产打屁股免费区网站| 亚洲天堂.com| 久久成人免费| 成人国产精品一级毛片天堂| 国产日本欧美在线观看| 欧美成人怡春院在线激情| 国产在线精品人成导航| 亚洲精品动漫| 伦伦影院精品一区| 婷婷色丁香综合激情| 五月天天天色| 成人伊人色一区二区三区| 国产高清在线精品一区二区三区 | 又爽又大又光又色的午夜视频| 四虎永久在线视频| 国产亚洲精品无码专| 欧美在线一级片| 呦女亚洲一区精品| 亚洲综合日韩精品| 日韩免费毛片视频| 国产成人91精品免费网址在线| 欧美一区日韩一区中文字幕页| 国产18在线播放| 高清免费毛片| 日本高清免费一本在线观看| 午夜日韩久久影院| 91一级片| 亚洲天堂网视频| 国产成人高精品免费视频| 亚洲最黄视频| 自拍中文字幕| 国产内射一区亚洲| 国产女同自拍视频| 亚洲天堂日本| 色欲国产一区二区日韩欧美| 日韩国产综合精选| 欧美国产综合视频| 人妻少妇久久久久久97人妻| 91欧洲国产日韩在线人成| 久久久噜噜噜| 女人毛片a级大学毛片免费| 一级毛片在线播放免费| 97视频在线精品国自产拍| 秋霞国产在线| 2021国产在线视频| JIZZ亚洲国产| 日本五区在线不卡精品| 国产一区二区三区在线观看免费| 国产美女91呻吟求|