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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM