UDP傳輸


在進行udp傳輸時,需要明確一個是發送端,一個是接收端。

udp的發送端:

1,建立udp的socket服務,創建對象時如果沒有明確端口,系統會自動分配一個未被使用的端口。

2,明確要發送的具體數據。

3,將數據封裝成了數據包。

4,用socket服務的send方法將數據包發送出去。

5,關閉資源。

//        1,建立udp的socket服務。
        DatagramSocket ds = new DatagramSocket(8888);//指定發送端口,不指定系統會隨機分配。
//        2,明確要發送的具體數據。
        String text = "udp傳輸演示 哥們來了";
        byte[] buf = text.getBytes();
//        3,將數據封裝成了數據包。
        DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.20.108"),10000);
//        4,用socket服務的send方法將數據包發送出去。
        ds.send(dp);
//        5,關閉資源。
        ds.close();

 

udp的接收端:

1,創建udp的socket服務,必須要明確一個端口,作用在於,只有發送到這個端口的數據才是這個接收端可以處理的數據。

2,定義數據包,用於存儲接收到數據。

3,通過socket服務的接收方法將收到的數據存儲到數據包中。

4,通過數據包的方法獲取數據包中的具體數據內容,比如ip、端口、數據等等。

5,關閉資源。

//        1,創建udp的socket服務。
        DatagramSocket ds = new DatagramSocket(10000);
//        2,定義數據包,用於存儲接收到數據。先定義字節數組,數據包會把數據存儲到字節數組中。
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf,buf.length);
//        3,通過socket服務的接收方法將收到的數據存儲到數據包中。
        ds.receive(dp);//該方法是阻塞式方法。
//        4,通過數據包的方法獲取數據包中的具體數據內容,比如ip,端口,數據等等。
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort();
        String text = new String(dp.getData(),0,dp.getLength());//將字節數組中的有效部分轉成字符串。
        System.out.println(ip+":"+port+"--"+text);
//        5,關閉資源。
        ds.close();

 

親測好使。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM