阅读(688) (11)

鸿蒙OS 使用当前网络进行Socket数据传输

2020-09-17 10:01:22 更新

场景介绍

应用使用当前的数据网络进行 Socket 数据传输。

接口说明

应用使用当前网络进行 Socket 数据传输,所使用的接口说明如下。

类名 接口名 功能描述
NetManager getByName(String host) 解析主机名,获取其 IP 地址。
bindSocket(Socket socket) 绑定 Socket 到该数据网络。
NetHandle bindSocket(DatagramSocket socket) 绑定 DatagramSocket 到该数据网络。

开发步骤

  1. 调用 NetManager.getInstance(Context) 获取网络管理的实例对象。

  1. 调用 NetManager.getDefaultNet() 获取默认的数据网络。

  1. 调用 NetHandle.bindSocket() 绑定网络。

  1. 使用 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();
   }