1.发快递(文件)
public static void main(String[] args) {
try {
// 发送信息的人
DatagramSocket ds = new DatagramSocket();
// 定义字节数组
byte[] bs = new byte[10];
// 定义数据包
DatagramPacket dp = null;
// 定义要发送的文件对象
File file = new File("C:\Users\Administrator\Pictures\Saved Pictures\2.jpg");
// 定义字节读取流
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
// 开始读取
while ((bis.read(bs)) != -1) {
// 开始创建数据包
dp = new DatagramPacket(bs, bs.length,
InetAddress.getByName("127.0.0.1"),3838);
// 开始发送
ds.send(dp);
}
System.out.println("发送完成");
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.接收快递 (接收文件)
public class Jsf1 {
public static void main(String[] args) {
System.out.println("等待接收");
try {
// 发送信息的人
DatagramSocket ds = new DatagramSocket(3838);
// 定义数据包
DatagramPacket dp = null;
// 定义接受的字节数组
byte[] bs = new byte[20];
// 定义保存的文件路劲
File file = new File("D:\\666.jpg");
// 定义字节写入流
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
// 开始接受
while (true) {
// 创建接受的数据包
dp = new DatagramPacket(bs, bs.length);
// 开始接受
ds.receive(dp);
// 把每次接受的字杰数组转换成字符串
String str = new String(bs);
if (str.contains("拜拜")) {
break;
}
// 保存到本地
bos.write(bs);
bos.flush();
}
ds.close();
bos.close();
System.out.println("接收完成");
} catch (Exception e) {
e.printStackTrace();
}
}
}