windows下gethostbyname 调用失败

Posted 言止予思

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下gethostbyname 调用失败相关的知识,希望对你有一定的参考价值。

gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSAStartup函数,
只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接),

应用程序才可以调用其他Windows Sockets DLL中的函数。当程序将要结束时,又必须调用WSACleanup 函数进行清理工作,以便释放其占用的资源。
WSACleanup 函数用来结束Windows Sockets DLL的使用。

WSAStartup与WSACleanup
WSAStartup应该与WSACleanup成对使用,WSAStartup的功能是初始化Winsock DLL,WSACleanup是来解除与Socket库的绑定并且释放Socket库所占用的系统资源。

在Windows下,Socket是以DLL的形式实现的。在DLL内部维持着一个计数器,只有第一次调用WSAStartup才真正装载DLL,以后的 调用只是简单的增加计数器,而WSACleanup函数的功能则刚好相反,每调用一次使计数器减1,当计数器减到0时,DLL就从内存中被卸载!因此,你 调用了多少次WSAStartup,就应相应的调用多少次的WSACleanup.

以上是关于windows下gethostbyname 调用失败的主要内容,如果未能解决你的问题,请参考以下文章

VC++调用gethostbyname实现域名解析(附源码)

gethostbyname与DNS

(高分)关于 gethostbyname函数的具体使用 谢谢

gethostbyname和gethostbyaddr

gethostbyname()函数

如何在没有 SecTrustGetTrustResult 的情况下诊断 iOS 上的证书可恢复信任失​​败?