Java UDP通信示例

Java UDP通信示例

Server端

  1. 初始化DatagramSocket:port和ip
  2. 用buffer初始化DatagramPacket
  3. 接收DatagramPacket
  4. 关闭socket
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UDPServer {
   public static void main(String[] args) {
   	DatagramSocket socket = null;

   	try {
   		try {
   			socket = new DatagramSocket(8080, InetAddress.getByName("127.0.0.1"));
   		} catch (UnknownHostException e) {
   			e.printStackTrace();
   		}
   	} catch (SocketException e) {
   		e.printStackTrace();
   	}

   	// 创建接收缓冲区
   	byte[] buffer = new byte[1024];
   	// 创建接收数据包
   	DatagramPacket receivePacket = new DatagramPacket(buffer, buffer.length);
   	// 接收数据
   	try {
   		socket.receive(receivePacket);
   	} catch (IOException e) {
   		e.printStackTrace();
   	} finally {
   		if (socket != null) {
   			socket.close();
   		}
   	}
   	// 解析消息并打印数据
   	String string = new String(receivePacket.getData(), 0, receivePacket.getLength());
   	System.out.println(string);
   }
}

Client

  1. 初始化DatagramSocket:port和ip
  2. 用buffer初始化DatagramPacket
  3. 发送DatagramPacket
  4. 关闭socket
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UDPClient {
	public static void main(String[] args) {
		DatagramSocket socket = null;
		try {
			socket = new DatagramSocket();
		} catch (SocketException e) {
			e.printStackTrace();
		}

		try {
			InetAddress ip = InetAddress.getByName("127.0.0.1");
			int port = 8080;
			byte[] buffer = "Hello world".getBytes();
			// 创建发送类型的数据包,这个数据包包含了要发往的ip地址和端口
			DatagramPacket packet = new DatagramPacket(buffer, buffer.length, ip, port);
			try {
				socket.send(packet);
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if (socket != null) {
					socket.close();
				}
			}
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}

	}
}
发布了80 篇原创文章 · 获赞 68 · 访问量 7541

猜你喜欢

转载自blog.csdn.net/weixin_44048823/article/details/104050964