国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

基于Java中UDP的廣播形式(實例講解)

2024-07-13 10:14:42
字體:
來源:轉載
供稿:網友

UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地 ,也不能保證數據包到達的順序。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。

在Java中UDP的實現:

* UDP:

* 客戶端:

* 1.創建用于UDP通信的socket對象---DatagramSocket(用于UDP數據的發送和接收)---數據報套接字

* 2.準備數據,封裝包----DatagramPacket(數據包)

* 3.發送數據,通過send方法

* 4.關閉套接字對象--socket對象

* 服務器端: 接收數據

* 1.創建socket套接字對象,并綁定端口號

* 2.創建包對象,創建空數組,準備接收數據

* 3.接收數據

* 4.關閉資源

* UDP廣播方式:

* 同一網段所有主機都能接收,前提是端口要監聽

* 客戶端發送廣播,開啟端口監聽的服務端接收并打印消息

* 廣播的實現 :由客戶端發出廣播,服務器端接收

* String host = "255.255.255.255";//廣播地址--代表所有主機

* 10.0.122.255----代表前三個網段是 10.0.122的所有主機

代碼實現:

客戶端(發送端):

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.創建對象 //構造數據報套接字并將其綁定到本地主機上任何可用的端口。 DatagramSocket socket = new DatagramSocket(); //2.打包 byte[] arr = "客戶端:哈哈。。。。".getBytes(); //四個參數: 包的數據 包的長度 主機對象 端口號    DatagramPacket packet = new DatagramPacket  (arr, arr.length,InetAddress.getByName("10.0.122.255") , 4000);  //3.發送 socket.send(packet);  //4.關閉資源 socket.close(); } }

服務器端(接收端):

import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;import java.util.Arrays;public class UDP_server { public static void main(String[] args) throws IOException { //1 DatagramSocket serverSocket = new DatagramSocket(4000); //2 byte[] arr = new byte[1024]; DatagramPacket packet = new DatagramPacket(arr, arr.length);  //3 當程序運行起來之后,receive方法會一直處于監聽狀態 serverSocket.receive(packet); //從包中將數據取出 byte[] arr1 = packet.getData(); System.out.println(new String(arr1));  //4 serverSocket.close(); }}

結果:

前三個網段是 10.0.122的所有主機上的端口號為4000的服務器端,只要開著,都可以接收到 ---

客戶端:哈哈。。。。

以上這篇基于Java中UDP的廣播形式(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峡江县| 盘山县| 神农架林区| 龙口市| 寿阳县| 谷城县| 新乡县| 武定县| 舞钢市| 弥渡县| 盐池县| 东平县| 北碚区| 喀喇沁旗| 盐津县| 襄垣县| 南乐县| 颍上县| 宿州市| 和林格尔县| 隆回县| 安塞县| 嵊泗县| 含山县| 隆子县| 金堂县| 阜新市| 红河县| 马鞍山市| 邢台县| 弋阳县| 楚雄市| 广元市| 罗山县| 青龙| 正宁县| 乐都县| 都安| 嘉祥县| 武陟县| 潞西市|