Java 簡單UDP通信


發送端

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

/**
 * UDP 發送端
 * @author Administrator
 *
 */
public class Demo2 {
    public static void main(String[] args) throws Exception {
        
        /**
         * 准備發送端
         * DatagramSocket()
         * 構造一個數據報套接字綁定到本地主機機器上的任何可用的端口。 
         */
        DatagramSocket ds = new DatagramSocket();
        
        /**
         * 准備數據包
         *1、 DatagramPacket(byte[] buf, int length)
         * 構造一個 DatagramPacket length接收數據包的長度
         *2、 String的getBytes()
         * 方法是得到一個操作系統默認的編碼格式的字節數組
         *3、 setSocketAddress()
         * 設置SocketAddress(通常是IP地址+端口號)都的遠程主機發送數據報。
         * 4、InetSocketAddress(InetAddress addr, int port)
         * 創建一個套接字地址的IP地址和端口號。 
         */
        String str = "你好,UDP";
        byte[] ch = str.getBytes();
        
        DatagramPacket dp = new DatagramPacket(ch, ch.length);
        dp.setSocketAddress(new InetSocketAddress("127.0.0.1", 12345));
        
        // 發送數據
        ds.send(dp);
        
        // 關閉套接字
        ds.close();
        
    }
}

接收端

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * UDP 接收端
 * @author Administrator
 *
 */
public class Demo3 {
    public static void main(String[] args) throws Exception {
        
        // 創建接收端
        DatagramSocket ds = new DatagramSocket(12345); 
        
        /**
         * 接收數據包
         * receive(DatagramPacket p)
         * 從這個套接字接收數據報包。 
         */
        byte[] data = new byte[1024];
        DatagramPacket dp = new DatagramPacket(data, data.length);
        ds.receive(dp);
        
        // 獲取接受到的信息
        String str = new String(data, 0, dp.getLength());
        System.out.println(str);
        
        // 關閉接收端
        ds.close();
    }
}

 


免責聲明!

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



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