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();