WSAStartup函数返回值的问题

  1. #include <winsock2.h>
  2. #include <iostream>
  3. #pragma comment(lib,"ws2_32.lib") 
  4. using namespace std;
  5. int main()
  6. {
  7.     WSADATA wsaData;
  8.     int err;
  9.     WORD wVer;
  10.     wVer = MAKEWORD(1000, 1000);
  11.     err = WSAStartup(wVer, &wsaData);
  12.     cout << wsaData.wVersion << "." << wsaData.wHighVersion << endl;
  13.     return 0;
  14. }

WSAStartup函数的第一个参数是加载WinSock库的版本,WSAStartup函数的第二个参数中设置使用的WinSock库的版本,当正确初始化时,WSAStartup会返回0。但我在WSAStartup函数的第一个参数中胡乱设置了一个版本号,WSAStartup仍然会返回0。

最后经测试发现,如果在WSAStartup函数第一个参数中设置的版本号不存在,那么会自动使用WinSock库中最低的版本1.1。

posted @ 2008-10-26 22:10  冷寒生  阅读(2128)  评论(0编辑  收藏  举报
IT知识库