网络编程之 DatagramSocket 类与 DatagramPacket 类(客户端收发消息)

DatagramSocket 和 DatagramPacket 两个类是 基于UDP 协议进行通信的包装类

实现两个客户端通过 UDP协议通信,使用DatagramSocket 和 DatagramPacket类

有如下几个步骤,分为客户端和服务端

1,客户端:

1),实例化DatagramSocket类(带上指定端口),创建客户端

2),准备数据,数据是以字节数组发送的

3),打包数据,使用 DatagramPacket 类 + 服务器地址+ 端口

4),发送数据

5),关闭连接

	public static void main(String[] args) throws IOException {
		// 1,创建服务端+端口
		DatagramSocket client = new DatagramSocket(614);
		
		// 2,准备数据
		String msg = "lcm,I love you!O(∩_∩)Olcmlcm";
		
		byte [] data = msg.getBytes();
		
		// 3,打包(发送的地点及端口)
		DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("127.0.0.1", 1219));
		
		// 4,发送资源
		client.send(packet);
		
		// 5,关闭资源
		client.close();
	}

2,服务端

1),实例化DatagramSocket类+指定端口

2),准备接收的字节数组,封装 DatagramPacket

3),接受数据

4),解析数据

5),关闭连接

	public static void main(String[] args) throws IOException {
		// 1,创建服务端+端口
		DatagramSocket server = new DatagramSocket(1219);

		// 2,准备接收容器
		byte[] container = new byte[1024];

		// 3,封装成包 new DatagramPacket(byte[] b,int length)
		DatagramPacket packet = new DatagramPacket(container, container.length);

		// 4,接收数据,使用 DatagramSocket的实例的 receive( DatagramPacket ) 方法进行接收
		server.receive(packet);

		// 5,分析数据
		byte[] data = packet.getData();
		int length = packet.getLength();
		String msg = new String(data, 0, length);
		System.out.println(msg);
		server.close();
	}

 

你可能感兴趣的:(网络编程,java基础,javaio)