~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

/*******************************************************************
*   更新日期:2017-11-07 10:33:08
*   进度:完成
*   作者:LuoTian
*   备注:
*******************************************************************/

WSAStartup()是套接字编程调用的第一个函数

int WSAStartup(
    WORD wVersionRequested,
    LPWSADATA lpWSAData
);

wVersionReauested:指定加载的winsock版本号,可以通过MAKEWORD(X,Y)来指定,其中X是高字节,Y是低字节。高字节为副版本号, 低字节为主版本号。

lpWSAData:指向LPWSADATA结构的指针,该参数返回最终加载动态库的相关信息。

结构形式为:

typedef struct WSAData {
        WORD                    wVersion;
        WORD                    wHighVersion;
        char                    szDescription[WSADESCRIPTION_LEN+1];
        char                    szSystemStatus[WSASYS_STATUS_LEN+1];
        unsigned short          iMaxSockets;
        unsigned short          iMaxUdpDg;
        char FAR *              lpVendorInfo;
} WSADATA, FAR * LPWSADATA;

一个完整的示例程序,功能:查看DLL是否支持2.2(应用程序只支持2.2,否则退出)

#include "winsock2.h"
#pragma comment(lib,"WS2_32.lib")
WORD wVersion;
WSADATA wsaData;

int main()
{
    int nErrCode;
    wVersion=MAKEWORD(2,2);
    nErrCode=WSAStartup(wVersion,&wsaData);
    if(nErrCode!=0)
    {
        return 0;
    }
    if(LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2)
    {

        WSACleanup();
        return 0;
    }
    return 0;
}

WSAStartup成功返回0,失败返回非0.

 

posted on 2017-10-16 10:30  LuoTian  阅读(1985)  评论(0编辑  收藏  举报