DNS解析

同步API,会阻塞:
getaddrinfo: IPV4 and IPV6, linux依赖<netdb.h>, windows依赖<ws2tcpip.h>
gethostbyname: only IPV4
异步:
libevent
getaddrinfo_a, 会执行注册的callback函数,

c-ares库,另起一线程,select/poll类似,监听socket并调用callback

   ares_gethostbyname 

在libcurl里,不会额外开线程,会在libcurl的线程里面不断的poll

调用ares,提交DNS请求:

(ares_gethostbyname)
(Curl_resolver_getaddrinfo+45)
(Curl_resolv+294)
(Curl_connect+6112)
(multi_runsingle+xx)
(curl_multi_perform+98)

Callback被调用

(query_completed_cb) curl/lib/asyn-ares.c:466
(end_hquery) cares/src/ares_gethostbyname.c:231
(qcallback) cares/src/ares_query.c:180
(end_query) cares/src/ares_process.c:1266
(process_answer) cares/src/ares_process.c:547
(processfds) cares/src/ares_process.c:152
(ares_process_fd+14) cares/src/ares_process.c:173
(waitperform +xx) curl/lib/asyn-ares.c:296
(Curl_resolver_is_resolved+22)
(multi_runsingle+xx)
(curl_multi_perform+98)

 

转载于:https://www.cnblogs.com/zzSoftware/p/3891630.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值