DNS异步解析


BaseLooper框架内置了一个DNS异步解析器DnsLooper

需要用到时,请用如下代码把DnsLooper加到MainLooper下面

       {

              auto looper = make_shared<DnsLooper>();

              AddChild(looper);

              looper->Start();

       }

DnsLooper也可在需要时自动创建

在需要做DNS解析时

enum

{

       BM_DNS_ACK = (BM_USER+ 1),

};

auto dnsLooper = dynamic_pointer_cast<DnsLooper>(mainLooper->FindObject("DnsLooper"));

dnsLooper->AddRequest(dnsName,shared_from_this(), BM_DNS_ACK);

 

在 long OnMessage(UINTmsg,WPARAMwp,LPARAMlp)中收到结果

       switch(msg)

       {

       caseBM_DNS_ACK:

       {

              CStringEx dns = (constchar*)wp;

              CStringEx ip = (constchar*)lp;

              DV("dnsAck,%s=[%s]",dns.c_str(), ip.c_str());

              return0;

       }

       }


猜你喜欢

转载自blog.csdn.net/xwpcom/article/details/79917804