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(); + } +}