UDP傳輸

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

udp的發送端:socket

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

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

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

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

5,關閉資源。ip

//        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,定義數據包,用於存儲接收到數據。get

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();

 

親測好使。

相關文章
相關標籤/搜索