• 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);
            }
        }
    }
    
  • 相关阅读:
    [转]如何烧录tizen镜像文件?(图文教程)
    [转]如何制作tizen镜像文件(图文教程)?
    [转]如何下载tizen源码(图文教程)?
    [转]如何编译tizen源码(图文教程)?
    uclibc,eglibc,glibc之间的区别和联系
    Create a Bootable MicroSD Card
    [Tizen]Creating a Tizen Platform Image from Scratch through Local Build
    OpenSSL加解密
    [20个项目学会BBC micro:bit编程] 11-模拟舵机控制实验
    【BBC micro:bit基础教程】10-micro:bit操作电位计(滑动变阻器)
  • 原文地址:https://www.cnblogs.com/yonyong/p/12870430.html
Copyright © 2020-2023  润新知