网络编程之UDP

UDP网络通信

介绍

1.类 DatagramSocket 和 DatagramPacket 实现了基于 UDP 协议网络程序。

2.UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定

3.什么时候可以抵达。

4.DatagramPacket 对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。

UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接

5.发送端与接收端是两个独立的运行程序

流程

DatagramSocket与DatagramPacket
1.建立发送端,接收端
2.建立数据包
3.调用Socket的发送、接收方法

4.关闭Socket

public class UDP1 {
	@Test
	public void send() throws UnknownHostException {// 发送端
		DatagramSocket ds = null;
		try {
			ds = new DatagramSocket();
			byte[] bs = "你好,我是发送者".getBytes();
			// 创建一个数剧包,每个数据包不能大于64K,都记录着数据信息,和发送端的ip和端口和接收端的ip和端口
			DatagramPacket dp = new DatagramPacket(bs, 0, bs.length, InetAddress.getByName("127.0.0.1"), 8989);
			ds.send(dp);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			ds.close();
		}

	}

	@Test
	public void recive() {// 接收端
		try {
			DatagramSocket ds = new DatagramSocket(8989);
			byte[] bs = new byte[1024];
			DatagramPacket dPacket = new DatagramPacket(bs, bs.length);
			ds.receive(dPacket);
			String string = new String(dPacket.getData(), 0, dPacket.getLength());
			System.out.println(string);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>