| DatagramSocketDataPacket(数据报包)
 复制代码import java.net.*;
/**
 *通过UDP传输方式,将一段文字发送出去 
 *1.建立UDP socket服务
 *2.提供数据,并将数据封装到数据包中
 *3.通过socket服务的发送功能,发送数据包
 *4.关闭资源。
 */
public class UDPSend{
    public static void main(String[] args) throws Exception {
        //创建UDP服务,通过DatagramSocket对象
        DatagramSocket ds= new DatagramSocket();
        //提供数据,并将数据封装到数据包中
        byte[] data="UDP COME".getBytes();
        DatagramPacket dp=new DatagramPacket(data,data.length,InetAddress.getByName("127.0.0.1"),10001);
        //通过socket服务的发送功能,发送数据包
        ds.send(dp);
        //关闭资源
        ds.close();
    }
}
复制代码import java.net.*;
/**
 * 定义一个应用程序,用于接受UDP协议传输的数据并处理
 *1.定义UDPSocket服务,通常监听一个端口
 *2.定义一个数据包,存储接收到的字节数据。用数据包对象提取字节数据中的信息
 *3.通过socket服务的receive方法将收到的数据存入已定义好的数据包中
 *4.通过数据包对象的特有功能,将这些不同的数据取出来,打印在控制台。
 *5.关闭资源。
 */
public class UDPReceive {
    public static void main(String[] args) throws Exception {
        //创建UDPSocket,建立端点,监听10000端口
        DatagramSocket ds= new DatagramSocket(10001);
        //定义数据包,存储数据
        byte []buf=new byte[1024];
        DatagramPacket dp=new DatagramPacket(buf,buf.length);
        //阻塞式方法
        ds.receive(dp);
        //获取发送端的IP
        String ip=dp.getAddress().getHostAddress();
        //获取传输的数据
        String data=new String(dp.getData(),0,dp.getLength());
        //获取的发送端的数字标识
        int port=dp.getPort();
        System.out.println(ip+"::"+data+"::"+port);
        ds.close();
    }
}
 
 
 |