Tiny DNS Resolver異步DNS解析
眾所周知,Unix/Linux系統(tǒng)下面gethostbyname()是內(nèi)核調(diào)用而且是同步的,就是說(shuō)當(dāng)多線程程序都要進(jìn)行DNS解析時(shí),同時(shí)只能有一 個(gè)線程在執(zhí)行g(shù)ethostbyname()代碼,其他線程在函數(shù)外等待。當(dāng)多線程/進(jìn)程進(jìn)行大量DNS解析時(shí),如果還調(diào)用 gethostbyname()方法,顯然會(huì)成為程序的一個(gè)瓶頸。所以我編寫(xiě)一個(gè)DNS解析程序,很簡(jiǎn)單就是基于UDP利用DNS協(xié)議發(fā)送和解析DNS 包。由于代碼工作在操作系統(tǒng)的用戶態(tài)達(dá)到了并行異步的效果。
評(píng)論
圖片
表情
