• 对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 }
  • 相关阅读:
    uboot如何检测XC2440是从Nand或Nor启动
    uboot中的快捷菜单的制作说明
    Android存储数据方式
    SharedPreferences详解
    (转载)Android理解:显式和隐式Intent
    使用 Fresco加载图片
    script "text/template"
    网页动画插件---Super Scrollorama , TweenMax 和skrollr
    Android控件之HorizontalScrollView 去掉滚动条
    android编程取消标题栏方法(appcompat_v7、Theme.NoTitleBar)
  • 原文地址:https://www.cnblogs.com/fangmr/p/11192237.html
Copyright © 2020-2023  润新知