From f2707af7571f46dba6f5b5330c84dae65112fece Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Thu, 26 Mar 2026 11:12:56 +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=E5=AE=A2=E6=88=B7=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/UdpClientDemo02.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 javaSE-day11/src/com/inmind/udp02/UdpClientDemo02.java diff --git a/javaSE-day11/src/com/inmind/udp02/UdpClientDemo02.java b/javaSE-day11/src/com/inmind/udp02/UdpClientDemo02.java new file mode 100644 index 0000000..58b2a5c --- /dev/null +++ b/javaSE-day11/src/com/inmind/udp02/UdpClientDemo02.java @@ -0,0 +1,45 @@ +package com.inmind.udp02; + +import java.io.IOException; +import java.net.*; + +/* +在java中使用DatagramSocket来表示UDP的客户端和服务端 +构造方法 +DatagramSocket() 创建客户端的Socket对象,系统会随机分配一个端口号。 +DatagramSocket(int port) 创建服务端的Socket对象,并指定端口号。 + +常用方法: +void send(DatagramPacket p) 发送数据包 +void receive(DatagramPacket p) 使用数据包接收数据 + +DatagramPacket :数据包 +DatagramPacket(byte[] buf, int length, InetAddress address, int port) 创建发出去的数据包对象 +DatagramPacket(byte[] buf, int length) 创建接收数据的数据包对象 +int getLength() 返回要发送的数据的长度或接收到的数据的长度 + +需求:使用UDP实现快速通信,实现1发1收 + */ +public class UdpClientDemo02 { + //UDP客户端实现 + public static void main(String[] args) throws IOException { + //1.创建客户端对象(丢飞饼的人) + DatagramSocket client = new DatagramSocket(); + + //2.创建数据包对象,封装要发出去的数据(创建一个飞饼) + /* + DatagramPacket(byte[] buf, int length, InetAddress address, int port) 创建发出去的数据包对象 + 参数一:封装要发出去的数据的字节数组 + 参数二:发送出去的字节的长度 + 参数三:服务端的IP地址(找到服务器) + 参数四:服务端的程序的端口号 + */ + byte[] bytes = "我爱java,java爱我".getBytes(); + DatagramPacket packet = new DatagramPacket(bytes,bytes.length, InetAddress.getLocalHost(),10022); + + //3.客户端正式发送数据包出去(丢飞饼) + client.send(packet); + System.out.println("客户端数据发送完毕~~~"); + client.close(); + } +}