UDP---用戶數(shù)據(jù)報協(xié)議,是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議。UDP不提供可靠性,它只是把應用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它們能到達目的地 ,也不能保證數(shù)據(jù)包到達的順序。由于UDP在傳輸數(shù)據(jù)報前不用在客戶和服務器之間建立一個連接,且沒有超時重發(fā)等機制,故而傳輸速度很快。
在Java中UDP的實現(xiàn):
* UDP:
* 客戶端:
* 1.創(chuàng)建用于UDP通信的socket對象---DatagramSocket(用于UDP數(shù)據(jù)的發(fā)送和接收)---數(shù)據(jù)報套接字
* 2.準備數(shù)據(jù),封裝包----DatagramPacket(數(shù)據(jù)包)
* 3.發(fā)送數(shù)據(jù),通過send方法
* 4.關閉套接字對象--socket對象
* 服務器端: 接收數(shù)據(jù)
* 1.創(chuàng)建socket套接字對象,并綁定端口號
* 2.創(chuàng)建包對象,創(chuàng)建空數(shù)組,準備接收數(shù)據(jù)
* 3.接收數(shù)據(jù)
* 4.關閉資源
* UDP廣播方式:
* 同一網(wǎng)段所有主機都能接收,前提是端口要監(jiān)聽
* 客戶端發(fā)送廣播,開啟端口監(jiān)聽的服務端接收并打印消息
* 廣播的實現(xiàn) :由客戶端發(fā)出廣播,服務器端接收
* String host = "255.255.255.255";//廣播地址--代表所有主機
* 10.0.122.255----代表前三個網(wǎng)段是 10.0.122的所有主機
代碼實現(xiàn):
客戶端(發(fā)送端):
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class UDP_client { public static void main(String[] args) throws IOException { //1.創(chuàng)建對象 //構造數(shù)據(jù)報套接字并將其綁定到本地主機上任何可用的端口。 DatagramSocket socket = new DatagramSocket(); //2.打包 byte[] arr = "客戶端:哈哈。。。。".getBytes(); //四個參數(shù): 包的數(shù)據(jù) 包的長度 主機對象 端口號 DatagramPacket packet = new DatagramPacket (arr, arr.length,InetAddress.getByName("10.0.122.255") , 4000); //3.發(fā)送 socket.send(packet); //4.關閉資源 socket.close(); } }
當前標題:基于Java中UDP的廣播形式(實例講解)-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article18/dgdggp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站導航、云服務器、移動網(wǎng)站建設、企業(yè)建站、網(wǎng)站設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容