对DatagramSocket的使用实例(java使用UDP进行数据传输)
Posted fangmr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对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进行数据传输)的主要内容,如果未能解决你的问题,请参考以下文章
java中如何检测本机指定的UDP服务端口是不是被占用?并且自动分配一个可用udp端口;