* UDP协议接收数据:
* A:创建接收端Socket对象
* B:创建一个数据包(接收容器)
* C:调用Socket对象的接收方法接收数据包
* D:解析数据包,并显示在控制台
* E:释放资源
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /* * UDP协议接收数据: * A:创建接收端Socket对象 * B:创建一个数据包(接收容器) * C:调用Socket对象的接收方法接收数据包 * D:解析数据包,并显示在控制台 * E:释放资源 * */ public class ReceiveDemo { public static void main(String[] args) throws IOException { // * A:创建接收端Socket对象 DatagramSocket ds = new DatagramSocket(10086); // * B:创建一个数据包(接收容器) // DatagramPacket(byte buf[],int length) byte bys[] = new byte[1024]; DatagramPacket dp = new DatagramPacket(bys, bys.length); // * C:调用Socket对象的接收方法接收数据包 // public void receive(DatagramPacket p); ds.receive(dp); // * D:解析数据包,并显示在控制台 // 获取对方的IP // public InetAddress getAddress(); InetAddress address = dp.getAddress(); String ip = address.getHostAddress(); // public byte[] getData();获取数据缓冲区 // public int getLength();获取数据的实际长度 byte bys2[] = dp.getData(); int length2 = dp.getLength(); String s = new String(bys, 0, length2); System.out.println(ip + ":" + s); // * E:释放资源 ds.close(); } }
* UDP协议发送数据:
* A:创建发送端Socket对象
* B:创建数据,并把数据打包
* C:调用Socket对象的发送方法发送数据包
* D:释放资源
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /* * UDP协议发送数据: * A:创建发送端Socket对象 * B:创建数据,并把数据打包 * C:调用Socket对象的发送方法发送数据包 * D:释放资源 * */ public class SendDemo { public static void main(String[] args) throws IOException { // * A:创建发送端Socket对象 DatagramSocket ds = new DatagramSocket(); // * B:创建数据,并把数据打包 // DatagramPacket(byte buf[],int length,InetAddress address,int port); // 创建数据 byte bys[] = "hello udp".getBytes(); // 长度 int length = bys.length; // IP地址对象 InetAddress address = InetAddress.getByName("192.168.0.102"); // 端口 int port = 10086; DatagramPacket dp = new DatagramPacket(bys, length, address, port); // * C:调用Socket对象的发送方法发送数据包 ds.send(dp); // * D:释放资源 ds.close(); } }