鴻蒙OS 使用當(dāng)前網(wǎng)絡(luò)進(jìn)行Socket數(shù)據(jù)傳輸

2020-09-18 15:41 更新

場(chǎng)景介紹

應(yīng)用使用當(dāng)前的數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行 Socket 數(shù)據(jù)傳輸。

接口說(shuō)明

應(yīng)用使用當(dāng)前網(wǎng)絡(luò)進(jìn)行 Socket 數(shù)據(jù)傳輸,所使用的接口說(shuō)明如下。

類(lèi)名 接口名 功能描述
NetManager getByName(String host) 解析主機(jī)名,獲取其 IP 地址。
bindSocket(Socket socket) 綁定 Socket 到該數(shù)據(jù)網(wǎng)絡(luò)。
NetHandle bindSocket(DatagramSocket socket) 綁定 DatagramSocket 到該數(shù)據(jù)網(wǎng)絡(luò)。

開(kāi)發(fā)步驟

  1. 調(diào)用 NetManager.getInstance(Context) 獲取網(wǎng)絡(luò)管理的實(shí)例對(duì)象。

  1. 調(diào)用 NetManager.getDefaultNet() 獲取默認(rèn)的數(shù)據(jù)網(wǎng)絡(luò)。

  1. 調(diào)用 NetHandle.bindSocket() 綁定網(wǎng)絡(luò)。

  1. 使用 socket 發(fā)送數(shù)據(jù)。

   NetManager netManager = NetManager.getInstance(null);

    
   if (!netManager.hasDefaultNet()) {
       return;
   }
   NetHandle netHandle = netManager.getDefaultNet();

    
   // 通過(guò)Socket綁定來(lái)進(jìn)行數(shù)據(jù)傳輸
   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賦值

      
       // 發(fā)送數(shù)據(jù)
       socket.send(request);
   } catch(IOException e) {
       e.printStackTrace();
   }
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)