zoukankan      html  css  js  c++  java
  • Java使用UDP进行通信

    场景

    AAA(网络安全系统) 是认证(Authentication)、授权(Authorization)和计费(Accounting)的简称,是网络安全中进行访问控制的一种安全管理机制,提供认证、授权和计费三种安全服务。
    RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是应用最广泛的AAA协议。AAA是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用远程访问拨号用户服务(Remote Authentication Dial In User Service,RADIUS)来实现AAA。

    对方AAA radius服务器,向我方传输用户上线及相关流量计费信息,我方进行实时接收并展示。而 Radius协议是采用UDP协议作为其传输层协议。

    使用

    发送端

    import java.io.IOException;
    import java.net.*;
    
    /**
     * @Describtion Todo
     * @Author yonyong
     * @Date 2020/5/11 16:48
     * @Version 1.0.0
     **/
    public class UDPServer {
        public static void main(String[] args) throws IOException {
            //1、创建udp服务,通过DategramSocket对象;
            DatagramSocket ds=new DatagramSocket();
    
            //2、确定数据,并封装数据到数据包.DatagramPacket(byte[] buf, int length, InetAddress address, int port)
            String string = "yonyong 666";
    
            //getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
            byte[] buf=string.getBytes();
            DatagramPacket dp=new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"),10000);
    
            //3、通过socket服务,将已有的数据报发送出去,通过send方法。
            ds.send(dp);
    
            //4、关闭资源
            ds.close();
        }
    }
    
    

    接收端

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    /**
     * @Describtion Todo
     * @Author yonyong
     * @Date 2020/5/11 16:53
     * @Version 1.0.0
     **/
    public class UDPClient {
        public static void main(String[] args) throws IOException {
            DatagramSocket ds=new DatagramSocket(10000);
    
            while(true){
                byte[] buf=new byte[1024];
                DatagramPacket dp=new DatagramPacket(buf, buf.length);
    
                ds.receive(dp);
    
                String ip=dp.getAddress().getHostAddress();
                String data=new String(dp.getData(),0,dp.getLength());
    
                System.out.println(ip+"::"+data);
            }
        }
    }
    
  • 相关阅读:
    【FZYZOJ】数论课堂 题解(约数个数定理)
    【FZYZOJ】无向图的联通图个数 题解(组合数学)
    【BalticOI2003】Gem 题解(树形DP)
    中国剩余定理 学习笔记
    同余 学习笔记
    树形DP 学习笔记(树形DP、树的直径、树的重心)
    【USACO02FEB】Rebuilding Roads 重建道路 题解(树形DP)
    JavaSE 基础 第02节 搭建Java开发环境
    JavaSE 基础 第01节 Java语言介绍
    eclipse 调节字体大小
  • 原文地址:https://www.cnblogs.com/yonyong/p/12870430.html
Copyright © 2011-2022 走看看