Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> WinSocket的幾個WSA*

WinSocket的幾個WSA*

編輯:關於android開發

WinSocket的幾個WSA*


  1. typedef struct WSAData {
  2. WORD wVersion;
  3. WORD wHighVersion;
  4. #ifdef _WIN64
  5. unsigned short iMaxSockets;
  6. unsigned short iMaxUdpDg;
  7. char FAR * lpVendorInfo;
  8. char szDescription[WSADESCRIPTION_LEN+1];
  9. char szSystemStatus[WSASYS_STATUS_LEN+1];
  10. #else
  11. char szDescription[WSADESCRIPTION_LEN+1];
  12. char szSystemStatus[WSASYS_STATUS_LEN+1];
  13. unsigned short iMaxSockets;
  14. unsigned short iMaxUdpDg;
  15. char FAR * lpVendorInfo;
  16. #endif
  17. } WSADATA;

WSADATA結構被用來儲存調用AfxSocketInit全局函數返回的Windows Sockets初始化信息。


1、WSAStartup

用法:

WSADATA wsaD;
WSAStartup(MAKEWORD(2,2),&wsaD);

當一個應用程序調用WSAStartup函數時,操作系統根據請求的Socket版本來搜索相應的Socket庫,然後綁定找到的Socket庫到該應用程序中。以後應用程序就可以調用所請求的Socket庫中的其它Socket函數了。

事實上,如果windows socket程序不加上這句,調用socket()函數是調用不成功的,一直返回-1。


2、WSACleanup

WSAStartup應該與WSACleanup成對使用,WSAStartup的功能是初始化Winsock DLL,WSACleanup是來解除與Socket庫的綁定並且釋放Socket庫所占用的系統資源。

在Windows下,Socket是以DLL的形式實現的。在DLL內部維持著一個計數器,只有第一次調用WSAStartup才真正裝載DLL,以後的 調用只是簡單的增加計數器,而WSACleanup函數的功能則剛好相反,每調用一次使計數器減1,當計數器減到0時,DLL就從內存中被卸載!因此,你 調用了多少次WSAStartup,就應相應的調用多少次的WSACleanup.


3、WSAGetLastError()

是指該函數返回上次發生的網絡錯誤。

待續......



參考網址:

http://blog.csdn.net/bolike/article/details/7584727

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved