跳到主要内容

dns

简介

本插件利用libevent第三方库自带的域名解析功能,实现非阻塞式dns解析。 默认开启一个libevent的事件循环,在事件循环中处理dns请求。

组件接口

dns.gs

函数原型函数作用
void stop()停止事件循环
object create_impl(map para = )创建一个dns请求实例
object default_looper()获取默认事件循环

impl.gs

函数原型函数作用
void set_getaddrinfo_callback(function callback)设置域名解析请求的回调函数
mixed get_addrinfo(string host, bool is_sync = false)根据主机名获取主机地址
void on_getaddrinfo(int paras_ptr)非阻塞模式get_addrinfo的回调函数

样例

import pkg.dns;

parallel void on_addrinfo_callback(string host, array list)
{
printf("host %O --> %O\n",host, list);
}
public void sample()
{
auto impl = dns.create_impl();
impl.set_getaddrinfo_callback((:on_addrinfo_callback:));
impl.get_addrinfo("www.g-bits.com");


mixed rlt = impl.get_addrinfo("www.g-bits.com",true);
printf("rlt=%O\n",rlt);

dns.stop();
}

sample();