【Java】udp 实现 client端和server端通信

客户端

 1.创建客户端+端口
 2.准备数据
 3.打包(发送的地点及端口)
 4.发送
 5.释放
 

服务端

 1.创建服务端+端口
 2.准备接受容器
 3.封装成包
 4.接受数据
 5.分析数据
 6.释放 

client.java

package UdpDemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.net.SocketException;
import java.util.Scanner;

/**
 * 客户端
 * 1.创建客户端+端口
 * 2.准备数据
 * 3.打包(发送的地点及端口)
 * 4.发送
 * 5.释放
 * @author 袁盛桐
 *
 */
public class UdpClient {
	public static void main(String[] args) throws IOException {
		//1.创建客户端+端口
		DatagramSocket client = new DatagramSocket(5555);
		//2.准备数据
		Scanner sc = new Scanner(System.in); 
		System.out.println("input send msg:");
		String msg = sc.nextLine();
		byte[] data = msg.getBytes();
		//3.打包(发送的地点及端口)
        DatagramPacket packet = new DatagramPacket(data, data.length,new InetSocketAddress("localhost",7777));
        //4.发送
        client.send(packet);
        //5.释放
        client.close();
		
	}
}

server.java

package UdpDemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * 服务端
 * 1.创建服务端+端口
 * 2.准备接受容器
 * 3.封装成包
 * 4.接受数据
 * 5.分析数据
 * 6.释放
 * @author 袁盛桐
 *
 */
public class UdpServer {
	public static void main(String[] args) throws IOException {
		//1.创建服务端+端口
		DatagramSocket server = new DatagramSocket(7777);
		//2.准备接受容器
		byte[] container = new byte[1024];
		//3.封装成包
		DatagramPacket packet = new DatagramPacket(container, container.length);
		//4.接受数据
		server.receive(packet);
		//5.分析数据
		byte[] data = packet.getData();
		int len = packet.getLength();
		System.out.println("server receive:"+new String(data,0,len));
		//6.释放
		server.close();
	}
}

实现通信

  • 先运行server端,发现server正在等待
  • 再运行client端,实现通信

猜你喜欢

转载自blog.csdn.net/weixin_38516944/article/details/82185053