From 793f0d0ea2bea6f0d2f7e5295eaf22707f194161 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Thu, 26 Mar 2026 11:34:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day11-=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=5FUDP=E7=9A=84=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/udp02/UdpServerDemo03.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 javaSE-day11/src/com/inmind/udp02/UdpServerDemo03.java diff --git a/javaSE-day11/src/com/inmind/udp02/UdpServerDemo03.java b/javaSE-day11/src/com/inmind/udp02/UdpServerDemo03.java new file mode 100644 index 0000000..eed4010 --- /dev/null +++ b/javaSE-day11/src/com/inmind/udp02/UdpServerDemo03.java @@ -0,0 +1,48 @@ +package com.inmind.udp02; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.SocketException; + +/* +作为UDP服务端,接收客户端发送的数据 + +在java中使用DatagramSocket来表示UDP的客户端和服务端 +构造方法 +DatagramSocket(int port) 创建服务端的Socket对象,并指定端口号。 + +常用方法: +void receive(DatagramPacket p) 使用数据包接收数据 + +DatagramPacket :数据包 +DatagramPacket(byte[] buf, int length) 创建接收数据的数据包对象 +int getLength() 返回要发送的数据的长度或接收到的数据的长度 + +需求:创建服务器,接收客户端的数据 + */ +public class UdpServerDemo03 { + public static void main(String[] args) throws IOException { + System.out.println("服务器启动了"); + //1.创建服务器端对象 + DatagramSocket server = new DatagramSocket(10022); + + //2.创建出一个数据包对象,用来接收数据(接飞饼) + //DatagramPacket(byte[] buf, int length) 创建接收数据的数据包对象 + byte[] buf = new byte[1024 * 64];//用来接收数据,最大64KB + DatagramPacket packet = new DatagramPacket(buf, buf.length); + + //3.服务器开始正式使用数据包,接收客户端发来的数据 + server.receive(packet);//阻塞方法 + + //4.从数据包中获取字节数据,并展示(接收多少个字节,就打印多少数据) + int length = packet.getLength();//数据的长度 + //字节数据转为字符串展示 + String result = new String(buf, 0, length); + //获取数据包的ip和端口 + System.out.println(packet.getPort()); + System.out.println(packet.getAddress().getHostAddress()); + System.out.println(result); + server.close(); + } +}