WSA(Windows Sockets Asynchronous,Windows异步套接字)
WSAStartup是WSA的启动命令,想要调用socket相关的Winsock API函数,必须调用WSAStartup函数完成对Winsock服务的初始化,指定socket版本等信息,操作系统将该版本的socket库绑定到应用程序中,之后就可以调用所请求的socket库中的其他socket函数。
完成对请求的socket库的调用后,要调用WSACleanup函数来解除与socket库的绑定并释放socket库占用的系统资源。
WSAStartup只在第一次调用时装在DLL,以后只是增加计数器,WSACleanup是使计时器减一,为0时卸载DLL。
源码:
// An highlighted block
int WSAInit()
{
printf("\nWSAInit!\n");
WSADATA data;
WORD wVersionRequested;
int err;
wVersionRequested = MAKEWORD(2,0);//version 2.0
err = WSAStartup(wVersionRequested,&data);
if (err != 0)
{
printf("Winsock initialization failed!");
return err;
}
return err;
}
int WSAUnInit()
{
printf("WSACleanup!\n");
return WSACleanup();
}