diff --git a/s-day11/src/com/inmind/udp02/Demo02.java b/s-day11/src/com/inmind/udp02/Demo02.java new file mode 100644 index 0000000..e45fb53 --- /dev/null +++ b/s-day11/src/com/inmind/udp02/Demo02.java @@ -0,0 +1,44 @@ +package com.inmind.udp02; + +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; + +/* +UDP(印度飞饼) +1.面向无连接 +2.传输不安全 +3.传输数据有限制,64KB以内 + +在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 Demo02 { + public static void main(String[] args) throws Exception { + //1创建客户端对象(丢飞饼的阿三) + DatagramSocket socket = new DatagramSocket();//随机分配端口 + + //2.创建数据包对象,封装要发出去的数据(创建一个飞饼) + byte[] bytes = "我爱java,java爱我".getBytes(); + DatagramPacket packet = new DatagramPacket(bytes,bytes.length, InetAddress.getLocalHost(),10022); + //3.客户端正式发送这个数据包出去 + socket.send(packet); + System.out.println("客户端数据发送完毕~~"); + socket.close(); + + } +}