高级Api

高级Api,第1张

一.全称: 数据报文(包)协议(User Datagram Protoco) 二.类型: 2.1 单波:是指只向一个固定的机器发送包 2.2 广波:是向255.255.255.255发送,所有监听某端口的机器都可以接收到 2.3 组波:是向一个用户组发送,该组里面所有用户可以接收到 三.UDP发送消息 发送方
//要发送的人
//		DatagramSocket ds = new DatagramSocket();
//		//定义要发送的文件
//		String str="真能熬夜";
//		//把文件打包
//		DatagramPacket dp = new DatagramPacket(str.getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),8848);
//		//发送
//		ds.send(dp);
//		System.out.println("发送成功!");
//		//关闭资源
//		ds.close();
接收方
//定义接收的人
//		DatagramSocket ds = new DatagramSocket(8848);
//		//准备容器接收
//		byte [] ba = new byte[10];
//		DatagramPacket dp = new DatagramPacket(ba,ba.length);
//		System.out.println("准备接收");
//		
//		//开始接收
//		ds.receive(dp);
//		//把字节转为字符串
//		String str = new String(ba);
//		System.out.println("\t\t接收的内容如下:"+str);
//		//关闭资源
//		ds.close()
四:传送文件 发送文件
//定义要传送的文件
		File file = new File("C:\Users\zjjt\Pictures\Camera Roll\3.gif");
		FileInputStream fis = new FileInputStream(file);//文件字节读取流
		BufferedInputStream bis = new BufferedInputStream(fis);//缓冲字符流
		
		//传送的人
		DatagramSocket ds = new DatagramSocket();
		//定义要传送的包
		DatagramPacket dp;
		byte [] bs = new byte[10];
		
		while(true) {
			//边读
			int n = bis.read(bs);
//			Thread.sleep(10);//休息十毫秒
			if(n==-1) {
				break;
			}
			//边存进包
			dp = new DatagramPacket(bs,bs.length,InetAddress.getByName("127.0.0.1"),8888);
			//边发送
			ds.send(dp);
		}
		
		//在发送一个结束包
		dp = new DatagramPacket("bey".getBytes(),"bey".getBytes().length,InetAddress.getByName("127.0.0.1"),8888);
		ds.send(dp);
		//关闭资源
		ds.close();
		bis.close();
		System.out.println("发送成功!");
接收文件
//定义保存的位置
		File file = new File("E:\sa.gif");
		//开始写
		FileOutputStream fos = new FileOutputStream(file);
		//转为缓冲
		BufferedOutputStream bos = new BufferedOutputStream(fos);
		//接收的人
		DatagramSocket ds = new DatagramSocket(8888);
		//接收的包
		DatagramPacket dp ;
		byte [] ba = new byte[10];
		System.out.println("准备接收");
		while(true) {
			//准备包裹
			dp = new DatagramPacket(ba, ba.length);
			//给接收的人
			ds.receive(dp);
			if(new String(ba).contains("bey")) {
				break;
			}
			//边写边入本地
			bos.write(ba);
			bos.flush();
		}
		//关闭
		bos.close();
		ds.close();

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存