初始化Winsock库
2021-03-13 15:30
标签:错误代码 环境 nbsp 指定 定义 systems stat size 失败 Winsock库对Windows的Socket编程有很好的支持,它提供了所有Socket相关的API函数。常用的Winsock库有1和2两个版本,流行应用程序使用的是Winsock2版本。其对应的动态链接库是WS2_32.dll,使用时需要包含Winsock2.h头文件,并要导入WS2_32.lib库文件。无论是使用哪种协议,无论是客户端还是服务端,在进行Socket编程之前首先应该对Winsock库(WS2_32.dll)进行初始化,完成初始化Winsock库工作的API函数是WSAStartup,其函数原型如下。 第一个参数wVersionRequested指定调用者使用的Winsock的最高版本,它是一个WORD类型,高字节表示副版本号,低字节表示主版本号。通常使用MAKEWORD宏构造此参数。第二个参数lpWSAData是一个指向WSADATA结构体的指针,用来接收所使用的Winsock库的详细信息。WSADATA结构体定义如下。 函数执行成功返回0,否则将返回如下错误代码。 当Winsock库使用完毕后应该使用WSACleanup函数终止对Winsock库(WS2_32.dll)的调用。在多线程环境下,WSACleanup将终止所有线程的Scoket操作。函数原型如下。 函数执行成功则返回0,执行失败则返回SOCKET_ERROR值。可以调用WSAGetLastError函数获得错误代码。 初始化Winsock库 标签:错误代码 环境 nbsp 指定 定义 systems stat size 失败 原文地址:https://www.cnblogs.com/cyx-b/p/12529832.htmlint WSAStartup(
WORD wVersionRequested, //指定调用者能够使用的Winsock的最高版本
LPWSADATA lpWSAData //执行WSADATA结构体的指针
);
typedef struct WSAData {
WORD wVersion; //版本
WORD wHighVersion; //最高版本
#ifdef _WIN64
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
#else
char szDescription[WSADESCRIPTION_LEN+1]; //描述字符串
char szSystemStatus[WSASYS_STATUS_LEN+1]; //系统状态字符串
unsigned short iMaxSockets; //最大套接字数量
unsigned short iMaxUdpDg; //版本2中忽略
char FAR * lpVendorInfo; //版本2中忽略
#endif
} WSADATA, FAR * LPWSADATA;
WSASYSNOTREADY //网络未就绪
WSAVERNOTSUPPORTED //不支持的版本
WSAEINPROGRESS //版本1的Winsock模块正在进行中
WSAEPROCLIM //已经达到限制值
WSAEFAULT //lpWSAData是一个无效指针
int WSACleanup(void)