62 网络编程(三)——UDP编程

htofly 2019-12-16

UDP编程标准步骤

服务器端

  • 使用DatagramSocket创建服务端:DatagramSocket server = new DatagramSocket(port);//参数为自定义端口号
  • 准备接受容器1:必须是byte数组
  • 使用DatagramPacket创建接受容器2:DatagramPacket packet = new DatagramPacket(容器1,start,length);//容器2的名字写为了packet
  • 接受数据:serve.receive(packet);
  • 处理数据:此时数据已经存储到容器1中,对容器1处理即可
  • 关闭:根据需要关闭服务端  server.close()

客户端

  • 使用DatagramSocket创建客户端:DatagramSocket client = new DatagramSocket(port);//参数为自定义端口号
  • 准备数据:必须是byte数组
  • 使用DatagramPacket创建packet包:DatagramPacket packet = new DatagramPacket(数据数组,start,数组length,new InetSocketAddress("目标主机地址",port));
  • 发送数据:client.send(packet);
  • 关闭 :client.close()

以下为一个实例

先启用服务器端,再启动客户端,然后查看服务器端的console结果

Server端

public static void main(String[] args) throws IOException{
		System.out.println("服务端启动");
		//创建客户端
		DatagramSocket server = new DatagramSocket(9917);
		//创建容器
		byte[] container = new byte[1024*60];
		//创建packet
		DatagramPacket packet = new DatagramPacket(container,0,container.length);
		//接收数据
		server.receive(packet);
		//处理数据
		System.out.println(new String(container,0,container.length));
		//关闭
		server.close();
	}

client端

public static void main(String[] args) throws IOException{
		System.out.println("客户端启动");
		//创建客户端
		DatagramSocket client = new DatagramSocket(12454);
		//准备数据
		String str = "最后一遍了";
		byte[] datas = str.getBytes();
		//创建packet
		DatagramPacket packet = new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",9917));
		//发送
		client.send(packet);
		//关闭
		client.close();
	}

运行结果:

服务端启动
最后一遍了

相关推荐