网络

//发送端代码
//
应用层的业务逻辑代码(产生数据) String data = "hello ,upd"; //1.利用传输层的功能,传输,应用层数据 DatagramSocket datagram Socket = new DatagramSocket(10086); //2.将要发送的数据封装橙数据包 //将要发送的数组,转化为字节数组 byte[] byteData = data.getBytes(); //创建表示接收端Socket对象的地址的ip InetAddress ip = InetAddress.getName("192.168.56.1"); DatagramPacket packet = new DatagramPacket(byteData,0,byteData.length,ip,9998); //3.通过udp的socket对象,将数据包发送出 datagramSocket.send(packet); //4.释放资源 datagramSocket.close();

接收端代码//UDP传输接收端//1.建立UDP的socket对象

DatagramSocket receivergramSocket new DatagramSocket(9998);

//2.创建用于接收数据的数据报包,通过socket对象的receive方法接收数据

//创建接收数据的数据报包
byte[] byteBuffer = new byte[1024];
int offset = 2;
DatagramPacket receiverPacket = new DatagramPacket(byteBuffer, offset, byteBuffer.length - offset);

//接收数据,该方法执行完,接收数据的数据报包中,就被填充了接收的到数据
receiverSocket.receive(receiverPacket);

//3.通过数据包对象的功能来万恒对接收到的数据进行解析

//从接收数据的数据报包中,获取接收数据的缓冲(byte[])
byte[] data = receiverPacket.getData();
//指明接收的数据,是从缓冲区中的哪个位置开始
int offset  =receiverPacket.getOffset();
//本次实际接收到的字节数
int lenght = receiverPacket.getLength();
//----------------------------------------------------------------

//接收端根据接收端的业务逻辑,解析接收到的数据
String s = new String(data, offset, length);
//接收到了来自192.168.56.1--10086数据:help, udp
//receiverPacket.getAddress()发送端的端口号
//receiverPacket.getPort() 发送端的端口号
System.out.print(
"接收到了来自" + receiverPacket.getAddress() + "--" + receiverPacket.getPort() + "数据:" + s);

接收端先执行

posted @ 2020-06-05 15:44  Poker1996  阅读(90)  评论(0编辑  收藏  举报