对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 }

 

你可能感兴趣的:(对DatagramSocket的使用实例(java使用UDP进行数据传输))