项目开发中,有个需求是接收udp的组播信息,获取帧并解析其中的内容。之前没有接触过udp的通讯以及数据帧。查阅资料对udp的通讯间的发送与接收实现记录如下。
UDP有三种通讯方式,分别是,单播 、广播、还有组播。
单播: 单机与单机之间的通讯
广播: 当前主机与所在网络中的所有主机通讯
组播: 当前主机与选定的一组主机通讯
一、单播
发送端代码
public class UdpServer {
/**
* 发送端
*/
public static void main(String[] args) throws Exception {
System.out.println("=============发送端启动===========");
// 1.创建发送端对象 参数是绑定本地地址和一个特定的端口号
DatagramSocket socket = new DatagramSocket(6666);
// 2.创建一个数据包对象封装数据
/**
* 参数1:封装要发送的数据
* 参数2:发送数据的大小
* 参数3:服务端的IP地址
* 参数4:服务端的端口
*/
byte[] bytes = "这是一条yyt的测试数据".getBytes();
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
int port = 8888 ;
DatagramPacket packet = new DatagramPacket(bytes,bytes.length, inetAddress,port);
// 3.发送数据
socket.send(packet);
// 4.关闭管道
socket.close();
}
}
接收端代码
public class UdpClient {
public static void main(String[] args) throws Exception {
System.out.println("=============客户端启动=====&#