OpenHarmony网络协议通信c-ares [交叉编译]异步解析器库

简介

c-ares是异步解析器库,适用于需要无阻塞地执行 DNS 查询或需要并行执行多个 DNS 查询的应用程序。

下载安装

直接在OpenHarmony-SIG仓中搜索c-ares并下载。

使用说明

以OpenHarmony 3.1 Beta的rk3568版本为例

  1. 将下载的c-ares库代码存在以下路径:./third_party/c-ares

  2. 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build


{"subsystem": "developtools","parts": {"bytrace_standard": {"module_list": ["//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core","//developtools/bytrace_standard/bin:bytrace_target","//developtools/bytrace_standard/bin:bytrace.cfg","//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace","//third_party/c_ares:c_ares_target"],"inner_kits": [{"type": "so","name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core","header": {"header_files": ["bytrace.h"],"header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"}}],"test_list": ["//developtools/bytrace_standard/bin/test:unittest"]}}
}
  1. 编译:./build.sh --product-name rk3568 --ccache

  2. 生成库文件和一些可执行测试文件,路径:out/rk3568/developtools/profiler

接口说明

  1. ares对channel进行初始化: ares_init()
  2. 销毁channel,释放内存,关闭打开的socket: ares_destroy(self.channel)
  3. 初始化channel,options,optmask: ares_init_options(&channel, &options, optmask)
  4. 设置dns请求服务器,设置完成需要free掉c_servers的内存空间: ares_set_servers(self.channel, cares.ares_addr_node* c_servers)
  5. ares处理完成,返回DNS解析的信息: dns_callback()
  6. 获取ares channel使用的FD: ares_fds()
  7. 有事件发生,交由ares处理: ares_process()
  8. 传递给c-ares channal和回调: ares_gethostbyaddr()

约束与限制

支持OpenHarmony API version 8 。

目录结构

|---- c-ares
|     |---- ci
|     |---- docs                         #资源文件
|     |---- include                      #头文件
|     |---- m4                           #预处理文件
|     |---- src
|           |---- lib
|                 |---- ares__close_sockets.c   #关闭TCP和UDP连接
|                 |---- ares__get_hostent.c     #获取area hostent
|                 |---- ares__read_line.c       #将文件中的一行读取到动态分配的缓冲区
|                 |---- ares__readaddrinfo.c    #读取地址信息
|                 |---- ares__sortaddrinfo.c    #对地址进行排序,并重新排列链表
|                 |---- ares_cancel.c           #取消请求
|                 |---- ares_fds.c              #获取使用的FD
|                 |---- ares_search.c           #area搜索
|     |---- test                         #单元测试文件
|     |---- README.md                    #安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路

​导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 刚刚,李飞飞团队发布《2024年人工智能指数报告》:10大趋势,揭示AI大模型的“喜”与“忧” 摘…

代码随想录打卡—day27—【回溯】— 回溯基础练习 4.15+4.16

1 39. 组合总和 39. 组合总和 我的AC代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<int> path;void dfs(int sum,vector<int>& candidates,int target,int start_idx){if(sum > target)return;if(sum target){a…

将 Notepad++ 添加到右键菜单

目录 方式一&#xff1a;添加注册表&#xff08;手动&#xff09; 方式二&#xff1a;添加注册表&#xff08;一键添加&#xff09; 有时安装了notepad后&#xff0c;在txt文件上右键&#xff0c;在弹出的菜单栏中没有【通过 Notepad 打开】&#xff0c;如下&#xff1a; 这…

【面经】2024春招-云计算后台研发工程师1(3个问题,移动TW等)

【面经】2024春招-云计算后台研发工程师1&#xff08;3个问题&#xff0c;移动&TW等&#xff09; 文章目录 岗位与面经基础1&#xff1a;数据库 & 网络&#xff08;3个问题&#xff09;基础2&#xff1a;系统 & 语法模板3&#xff1a;算法 & 项目&#xff08;移…

[StartingPoint][Tier2]Base

Task 1 Which two TCP ports are open on the remote host? (远程服务器开放了哪两个TCP端口?) $ nmap -sC -sV 10.129.234.232 22,80 Task 2 What is the relative path on the webserver for the login page? (相关的登录页面路径是什么?) /login/login.php Task 3 …

DP动态规划用在了回文串上

题源力扣最长的回文子串 思路 因为回文串有一个特性&#xff0c;就是左右对称&#xff0c;所以判断一个区间是不是回文串只需要知道两个东西&#xff1a; 他的两个端点相不相等去掉两个端点以后还是不是回文串 用数学公式表达就是 d p ( i , j ) { d p [ i 1 ] [ j − 1 …

欢乐钓鱼大师加速、暴击内置脚本,直接安装

无需手机root,安装软件即可使用&#xff0c;仅限安卓。 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

element-ui按需引入配置babel-preset-es2015 有问题?

element-ui官网的步骤进行按需引入 报错 Error: Cannot find module ‘babel-preset-es2015 安装 npm install babel-plugin-component -D 配置babel.config.js 或者 .babelrc文件 官网原配置 会报错 {"presets": [["es2015", { "modules": …

html5-qrcode实现扫码功能——2024-04-19

项目需求&#xff1a;H5项目需要实现扫描二维码或条形码功能。 html5-qrcode使用 1.安装 npm install html5-qrcode --save-dev 2.引入 import { Html5Qrcode } from html5-qrcode; 3.定义所需变量 data: function() {return {html5QrCode: null,isShow: false,scanReason…

指数平滑算法介绍及代码实现

一、一阶指数平滑 一阶指数平滑&#xff0c;也称为一次指数平滑或简单指数平滑&#xff08;Simple Exponential Smoothing, SES&#xff09;&#xff0c;是时间序列预测中的一种方法。这种方法适用于没有明显趋势和季节性成分的时间序列数据。一阶指数平滑的基本思想是最近的观…

【LeetCode热题100】【矩阵】矩阵置零

题目链接&#xff1a;73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 用两个数组标记要变成0的行和列索引 class Solution { public:void setZeroes(vector<vector<int> > &matrix) {vector<bool> row(matrix.size(), false), column(matrix[0]…

Python零基础从小白打怪升级中~~~~~~~生成器和迭代器

第十七节&#xff1a;生成器和迭代器 一、迭代器 本质&#xff1a; 一个实现了__iter__方法和__next__方法的对象 注意 Iterator对象和 Iterable对象&#xff0c;一个是迭代器&#xff0c;一个是可迭代对象 1、list、dict、str、tuple、set是可迭代对象但不是迭代器&#x…

Hidl 学习总结 3

目录 1、需求分析 2、接口实现 3、代码编写 4、调试过程中遇到的坑 1、需求分析 项目中需要监听gpio改变的事件&#xff0c;驱动测上报Input事件&#xff0c;需要在framework添加逻辑通知给app&#xff0c;为了解耦&#xff0c;考虑能够更好的移植&#xff0c;app单独监听该…

UUPSUpgradeable部署合约和升级合约

文章目录 写一个合约1. 使用代理部署 并添加拥有者2. 没有name number为103. 使用代理升级部署 填写上面代理的合约地址4. 合约地址没有变&#xff0c;但是添加了name&#xff0c;并且保存了number的属性值 写一个合约 // SPDX-License-Identifier: MIT // Compatible with Op…

《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》【大模型思维链】

目录 前言一、思维链介绍1-1、指令1-2、逻辑依据1-3、示例 二、Cot一般分类2-1、Zero-Shot-CoT2-2、Few-Shot-CoT 三、Cot的好处&缺陷&适用3-1、Cot的好处3-2、Cot的缺陷3-3、Cot的适用 四、变体4-1、自我验证&#xff08;self-consistency checking&#xff09; 总结 …

freemarker实现代码生成器

这个主要是黑马的ihrm课程中讲的代码生成器的部分内容。 文章目录 应用场景第一个FreeMarker程序&#xff08;数据模板 文件输出&#xff09; 概述数据模型模板的常用标签模板的常用指令 元数据数据库元数据参数元数据结果集元数据 代码生成器思路分析搭建环境导入坐标配置实体…

CloudCompare——体元法计算树冠体积

目录 1.概述2.软件实现3.完整操作4.相关代码 本文由CSDN点云侠原创&#xff0c;CloudCompare——体元法计算树冠体积&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫与GPT生成的文章。 1.概述 体元法将树冠所在的空间范围划…

python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习

学习目标&#xff1a; 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 学习内容&#xff1a; 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 …

电弧的产生机理

目录&#xff1a; 1、起弧机理 2、电弧特点 3、电弧放电特点 4、实际意义 1&#xff09;电力开关装置 2&#xff09;保险丝 1、起弧机理 电弧的本质是一种气体放电现象&#xff0c;可以理解为绝缘情况下产生的高强度瞬时电流。起弧效果如下图所示&#xff1a; 在电场的…

SpringBoot整合Nacos

文章目录 nacosnacos下载nacos启动nacos相关配置demo-dev.yamldemo-test.yamluser.yaml 代码pom.xmlUserConfigBeanAutoRefreshConfigExampleValueAnnotationExampleDemoApplicationbootstrap.yml测试结果补充.刷新静态配置 nacos nacos下载 下载地址 一键傻瓜试安装即可,官…