程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> WinSocket的幾個WSA*

WinSocket的幾個WSA*

編輯:關於PHP編程

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 © 程式師世界 All Rights Reserved