C ++异步主机名解析

时间:2014-07-02 09:18:28

标签: c++ networking epoll getaddrinfo gethostbyname

我有一个epoll服务器,它有时会使用它们的主机名表示打开传出连接。由于传入连接流的速度很快,我不想阻止像getaddrinfo()gethostbyname()这样的地方。当然,我可以实现缓存加上一个新线程,其中将执行主机名解析。是否有单线程非阻塞方式将主机名解析为IP?

1 个答案:

答案 0 :(得分:1)

为此目的有各种库,例如libevent包含一个解析器。

我有点同意@Puciek,但是在单个线程中这样做会增加相当多的复杂性以获得可疑的好处。使用专用的解析线程并通过管道与它通信可能是最好的解决方案。

因为你提到epoll我猜你正在使用Linux。它有一个getaddrinfo_a函数,如果我理解正确,可以为你做一部分。它克隆一个线程并在那里运行getaddrinfo。我从来没有使用它,但除此之外无法帮助。