對DatagramSocket的使用實例(java使用UDP進行數據傳輸)


今天剛看懂的一點點東西,記錄一下,方便自己回顧

客戶端:

Client.java

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5 import java.net.SocketException;
 6 
 7 import org.json.JSONObject;
 8 
 9 public class Client {
10     
11     private static int port = 7799;//定義端口 數據報要用
12     
13     private static String IP = "127.0.0.1";//定義IP地址     數據報要用 
14     
15     private static DatagramPacket  packet = null;//定義要發送的數據報
16     
17     public static void main(String[] args) throws IOException{
18         try(
19                 DatagramSocket socket = new DatagramSocket();//創建UDP套接字
20                 
21                 ) {
22             //將數據使用json編碼發送
23             JSONObject jsonObject = new JSONObject();//創建json對象
24             jsonObject.put("test","hello");//給json對象插入數據
25             
26             //初始化要發送的數據報參數為 {字節數組}{長度}{地址}{端口}
27             packet = new DatagramPacket(new byte[0], 0, InetAddress.getByName(IP), port);
28             //數據報應該包含發送的目的地址和端口號
29             
30             byte[] test = jsonObject.toString().getBytes();//把json對象轉換為字節碼並存入字節數組中
31             
32             
33             packet.setData(test);//為要發送的數據包指定字節數組(要發送的數據)
34             
35             
36             socket.send(packet);//發送數據包
37         }
38         catch (SocketException e) {
39             e.printStackTrace();
40         }
41         
42     }
43 }

服務端

server.java

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 
 5 import org.json.JSONObject;
 6 
 7 public class server {
 8     private static int port = 7799;
 9     private String IP = "127.0.0.1";
10     //創建字節數組准備接收數據
11     private static byte[] test = new byte[1024];
12     private static DatagramPacket packet = new DatagramPacket(test,test.length);
13     
14     public static void main(String[] args) throws IOException {
15         
16         DatagramSocket socket = new DatagramSocket(port);//創建UDP套接字
17         socket.receive(packet);//接受數據報
18         
19         String hell = new String(test, 0, test.length);//將收到的數據存在字符串中
20         JSONObject jsonObject = new JSONObject(hell);//獲得存儲數據的字符串的json編碼
21         System.out.println(jsonObject);
22         String str = jsonObject.getString("test");//獲取json編碼中test對象的值
23         System.out.println(str);
24     }
25 
26 }

 


免責聲明!

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



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