一.场景
之前在项目中接触到对接第三方API接口,需要获取对方的UDP数据报信息,数据GPS轨迹信息,所以数据量较大,并且还得对数据报进行解析,再将解析后的数据入库,存入Kafka,所以我们采用了异步多线程获取数据和消费数据的方法。异步处理中采用LinkedBlockingQueue作为队列,暂存数据包待消费。以下是demo
二.发送数据
项目中只需要接受客户端发送的数据,并没有用到此处的发送端。为了该功能学习也是写了一下发送端代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class SendUdp {
//发送端
public static void send() throws IOException, InterruptedException {
//得到目标的机器地址
InetAddress inetAddress=InetAddress.getByName("10.73.243.124");
//设置发送端端口,需与接受端端口一致,以便正确接收
DatagramSocket ds = new DatagramSocket(8800);
String data="111111111111";
//将数据转化为byte[]形式,用于发送
byte[] bytes=