在鸿蒙OS中,DatagramSocket 用于实现 UDP(用户数据报协议)的通信。通过 DatagramSocket,你可以创建一个用于发送和接收数据报的套接字。以下是一个简单的使用 DatagramSocket 的示例代码:
import ohos.net.DatagramPacket;
import ohos.net.DatagramSocket;
import ohos.net.SocketException;
import ohos.net.SocketAddress;
import ohos.net.Inet4Address;
import java.io.IOException;

public class DatagramSocketExample {
    public static void main(String[] args) {
        try {
            // 创建DatagramSocket对象
            DatagramSocket socket = new DatagramSocket();

            // 设置本地端口(可选)
            socket.bind(new SocketAddress(new Inet4Address("0.0.0.0"), 8888));

            // 设置远程主机地址和端口
            SocketAddress remoteAddress = new SocketAddress(new Inet4Address("192.168.0.1"), 8080);

            // 发送数据
            byte[] sendData = "Hello, UDP!".getBytes();
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, remoteAddress);
            socket.send(sendPacket);

            // 接收数据
            byte[] receiveData = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
            socket.receive(receivePacket);

            // 处理接收到的数据
            String receivedData = new String(receivePacket.getData(), 0, receivePacket.getLength());
            System.out.println("Received: " + receivedData);

            // 关闭DatagramSocket
            socket.close();

        } catch (SocketException | IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中,首先创建了一个 DatagramSocket 对象,并通过 bind 方法设置了本地端口(这是可选的,如果不设置系统会自动分配一个空闲端口)。然后,设置了远程主机的地址和端口,并通过 send 方法发送数据报。接着,通过 receive 方法接收数据报,最后处理接收到的数据。

请注意,以上代码仅为示例,实际使用时需要根据具体需求进行适当的修改。同时,需要确保在鸿蒙OS的开发环境中使用的 API 版本和库版本与代码相匹配。


转载请注明出处:http://www.zyzy.cn/article/detail/2817/鸿蒙OS