鸿蒙OS 使用当前网络进行Socket数据传输
场景介绍
应用使用当前的数据网络进行 Socket 数据传输。
接口说明
应用使用当前网络进行 Socket 数据传输,所使用的接口说明如下。
类名 | 接口名 | 功能描述 |
---|---|---|
NetManager | getByName(String host) | 解析主机名,获取其 IP 地址。 |
bindSocket(Socket socket) | 绑定 Socket 到该数据网络。 | |
NetHandle | bindSocket(DatagramSocket socket) | 绑定 DatagramSocket 到该数据网络。 |
开发步骤
- 调用 NetManager.getInstance(Context) 获取网络管理的实例对象。
- 调用 NetManager.getDefaultNet() 获取默认的数据网络。
- 调用 NetHandle.bindSocket() 绑定网络。
- 使用 socket 发送数据。
NetManager netManager = NetManager.getInstance(null);
if (!netManager.hasDefaultNet()) {
return;
}
NetHandle netHandle = netManager.getDefaultNet();
// 通过Socket绑定来进行数据传输
try {
InetAddress address = netHandle.getByName("www.huawei.com");
DatagramSocket socket = new DatagramSocket();
netHandle.bindSocket(socket);
byte[] buffer = new byte[1024];
DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, port);
// buffer赋值
// 发送数据
socket.send(request);
} catch(IOException e) {
e.printStackTrace();
}