1. DatagramSocket
- 用於接收與發送UDP的類
- 負責發送一個UDP包或接收UDP包
- 不同於TCP,UDP並沒有合併到Socket API中(無服務器和客戶端的區別)
- DatagramSocket() 創建簡單實例,不指定端口和IP
- DatagramSocket(int port) 創建監聽固定端口的實例(接收數據的端口)
- DatagramSocket(int port, InetAddress localAddr) 創建監聽固定端口指定IP的實例(計算機存在多個IP地址時可以使用,只監聽某一固定IP的數據)
- receive(DatagramPacket d) 接收UDP封裝包
- send(DatagramPacket d) 發送UDP封裝包
- sendSoTimeout(int timeout) 設置超時時間,毫秒
- close() 關閉,釋放資源
2. DatagramPacket
- 用於處理報文
- 將byte數組、目標端口等數據包裝成報文或將報文解析爲byte數組
- 是DUP發送實體,也是接收實體
- DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 前3個參數指定buf的使用區間,後2個指定目標機器與端口(僅發送數據時指定,接收時計算機自動判別)
- DatagramPacket(byte[] buf, int length, SocketAddress address) SocketAddress相當於InetAddress+Port
- setData(byte[] buf, int offset, int length)
- setData(byte[] buf)
- setLength(int length)
- getData()、getOffset()、getLength()
- setAddress(InetAddress iadde)、setPort(int iport)
- getAddress()、getPort()
- setSocketAddress(SocketAddress address)
- getSocketAddress() 可無參構造,後使用以上函數進行賦值和取值操作