UDP(User Datagram Protocol)是一种无连接的传输层协议,在 Java 中可以使用 UDP 进行网络编程。理论上没有服务器客户端之分,实际上算是有的,以下是 Java 中 UDP 编程的基本步骤和示例代码:
服务器端
- 创建
DatagramSocket
对象,指定端口号,用于接收客户端发送的数据报。 - 创建
DatagramPacket
对象,用于接收数据。 - 使用
DatagramSocket
的receive
方法接收数据报,将数据存储在DatagramPacket
中。 - 从
DatagramPacket
中获取数据,并进行处理。 - 关闭
DatagramSocket
。import java.net.*; public class UDPServer { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub //1.创建DatagramSocket对象,指定端口号。用于接收客户端发送的数据报 DatagramSocket socket = new DatagramSocket(6002); //2.创建DatagramPacket 对象,用于接收数据. byte [] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); //3.使用 DatagramSocket 的 receive 方法接收数据报,将数据存储在 DatagramPacket 中 socket.receive(packet); //4.从DatagramPacket中获取数据,并进行处理 String message = new String(packet.getData(),0,packet.getLength()); System.out.println(message); //5.关闭DatagramSocket socket.close(); } }
客户端
- 创建
DatagramSocket
对象,用于发送数据报。 - 创建
DatagramPacket
对象,指定要发送的数据、目标 IP 地址和端口号。 - 使用
DatagramSocket
的send
方法发送数据报。 - 关闭
DatagramSocket
。import java.net.*; public class UDPClient { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub //1.创建 DatsagramSocket 对象 ,用于发送数据报 DatagramSocket socket = new DatagramSocket(); //2.创建DatagramPacket 对象,指定要发送的数据,目标IP地址和端口号 //要发送的数据 String message = "你好,服务器"; byte [] buff = message.getBytes(); //创建DatagramPacket 对象,指定目标IP地址和端口号 InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(buff, buff.length, address, 6002); //3.使用DatagramSocket 的send方法发送数据报 socket.send(packet); //4.关闭DatagramSocket socket.close(); } }