【高级API】1 、UDP(User Datagram Protocol)用户数据包传输协议 1.1 特点:
- 效率高
- 不安全
- 易造成数据丢失
- 单播:一对一
- 广播:一对多
- 组播:多对多
- 效率低
- 每次都需要建立连接
- 耗费时间
- 安全性高
1 定义接收信息的人
2 定义byte数组用来接收信息
3.定义接收信息的数据包
4.开始接收
5.将接收的字节数组转换字符串
6.关闭资源
System.out.println("小可爱上线~,等待发送!");//定义接收信息的人DatagramSocket ds = new DatagramSocket(3838);//定义byte数组用来接收信息byte[] bs = new byte[30];//定义接收信息的数据包DatagramPacket dp = new DatagramPacket(bs, bs.length);//开始接收ds.receive(dp);//将接收的字节数组转换字符串String str = new String(bs);//去除空格str.trim();//获取系统时间System.out.println(new Date().toLocaleString());System.out.println("接收的信息是:" + str);//关闭资源ds.close(); 3.1.2 发送者 1 定义发送信息
2.定义发送对象
3.打包
4.开始发送
//定义发送信息String str = "一个来自哈哈星的快递";//定义发送对象DatagramSocket ds = new DatagramSocket();//打包DatagramPacket dp;dp = new DatagramPacket(str.getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"), 3838);//开始发送ds.send(dp);ds.close();System.out.println("发送完成!"); 3.2 案例二:发送文件 3.2.1 发送方 1.定义发送信息的人
2.定义字节数组
3.定义空数据包
4.定义要发送文件的对象
5.定义字节读取流
6.开始读取发送
7.开始创建数据包
8.开始发送
9.关闭
//定义发送信息的人DatagramSocket ds=new DatagramSocket();//定义字节数组byte []bs=new byte[10];//定义空数据包DatagramPacket dp=null;//定义要发送文件的对象File file=new File("D:\\6.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"),6969);//开始发送ds.send(dp);}//文件发送完成后,在额外发送一个数据包dp=new DatagramPacket("拜拜".getBytes(), "拜拜".getBytes().length,InetAddress.getByName("127.0.0.1"),6969);//开始发送ds.send(dp);//关闭ds.close();bis.close();System.out.println("发送完成^_^"); 3.3.2 接收方 1.定义接收信息的人
2.定义接收数据包
3.定义接收的字节数据
4.定义保存的文件路径
5.定义字节写入流
6. 开始接收(用while循环)
7.保存到本地
System.out.println("小可爱上线~,等待发送!");// 定义接收信息的人DatagramSocket ds = new DatagramSocket(6969);// 定义接收数据包DatagramPacket dp = null;// 定义接收的字节数据byte[] bs = new byte[10];// 定义保存的文件路径File file = new File("D:\\项目");// 定义字节写入流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("接收完成");
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
