打包数据给接收方发送
package UDP;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 基于UDP协议发送数据
* @author 马重阳
* @date 2021-9-15 16:28:17
*/
public class Send {
public static void main(String[] args) {
try {
// 创建 Socket 对象
DatagramSocket ds = new DatagramSocket();
// 封装数据
byte[] bytes = "Hello World!".getBytes();
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("127.0.0.1"), 7777);
// 发送数据
ds.send(dp);
// 关闭
ds.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package UDP;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* 基于UDP协议的接收方
* @author 马重阳
* @date 2021-9-15 16:28:51
*/
public class receive {
public static void main(String[] args) {
try (DatagramSocket ds = new DatagramSocket(7777)) {
// 准备一个接收数据的 packet 对象
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
// 接收数据
ds.receive(dp);
// 从数据包中拆包
byte[] data = dp.getData();
System.out.println(new String(data, 0, dp.getLength()));
} catch (Exception e) {
e.printStackTrace();
}
}
}