栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

高级API

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

高级API

1 、UDP(User Datagram Protocol)用户数据包传输协议 1.1 特点:

效率高不安全易造成数据丢失 1.2 方式:

单播:一对一广播:一对多组播:多对多 2. Socket 套接字技术 2.1 特点:

效率低每次都需要建立连接耗费时间安全性高 3. UDP案例 3.1 案例一:单播 3.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("接收完成");
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号