========================UDP=============================
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。
UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPServer { public static void main(String[] args) { try { System.out.println("**服务器已经启动**"); // 指定服务端口号、数据包大小 int serverPort = 8800; byte[] data = new byte[1024]; // 创建服务端DatagramSocket,并指定端口号 DatagramSocket socket = new DatagramSocket(serverPort); /* UDP数据传输 */ while (true) { /* 处理客户端的请求 */ // 创建数据报DatagramPacket,用于接收客户端发送的数据 DatagramPacket packet = new DatagramPacket(data, data.length); // 等待客户端的连接请求 socket.receive(packet); // 获取客户端发送的数据 String content = new String(data, 0, packet.getLength()); /* 服务器处理任务 */ System.out.println("处理需要转置的字符串:" + content); StringBuffer temp = new StringBuffer().append(content); // 倒置字符串 content = new String(temp.reverse()); /* 发送服务端响应 */ // 定义客户端的地址、端口号、数据 InetAddress address = packet.getAddress(); int clientPort = packet.getPort(); byte[] reply = content.getBytes(); // 创建数据报,含响应的数据信息 DatagramPacket packet2 = new DatagramPacket(reply, reply.length, address, clientPort); // 响应客户端 socket.send(packet2); } // 关闭资源 // socket.close(); } catch (Exception e) { e.printStackTrace(); } } }