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); } } }
相关推荐
拓网科技 2020-11-23
85433664 2020-11-17
拓网科技 2020-11-13
mspgqrs 2020-10-19
xiaotutu0000 2020-10-15
kjyiyi 2020-10-10
大白机器人 2020-09-30
lifan0 2020-09-25
kunyus 2020-09-25
移动互联技术酒歌 2020-09-18
何砝 2020-09-16
anyvip 2020-09-15
zrhCSDN 2020-09-11
myCat 2020-09-09
lantingyue 2020-08-15
SanBa 2020-08-14
hiarxiaoliang 2020-08-05
urmsone 2020-08-03
虞凌云 2020-07-29