1 Windows下Socket库的初始化和关闭
windows下使用Socket比较特殊,使用前我们需要对socket库进行初始化,使用完我们需要对socket库进行关闭,完成相应的清理动作。
首先看一下代码:
#include <iostream>
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <WinSock2.h>
//#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main()
{
WSADATA data;
WORD version = MAKEWORD(2, 2);
WSAStartup(version, &data);
WSACleanup();
return 0;
}
要点如下:
- WIN32_LEAN_AND_MEAN宏的使用主要是为了避免Windows.h和WinSock2.h种引起的冲突,这是一种比较好的解决方案;另外一种解决方案是将WinSock2.h放到Windos.h前面,这样的话当工程比较大的时候就很难管理了,很容易出错。
#pragma comment(lib, "ws2_32.lib")
是包含相应的静态库,如果是在vs种我们也可以将ws2_32.lib直接添加到连接器-输入中即可。- 我们先看一下
int WSAAPI WSAStartup(_In_ WORD wVersionRequested, _Out_ LPWSADATA lpWSAData );
这个函数,LPWSADATA这种类型往往是指针类型,我们只需要将LP去掉就可以知道所需要的类型。
参考资料: