发生冲突的原因是windows.h里面包含了winsock.h,
而winsock.h和WinSock2.h明显是冲突的。
解决办法是把windows.h放在WinSock2.h的后面。
为什么这样做可以呢?我们看WinSock2.h里面有这么一段代码:
#ifndef _WINSOCK2API_
#define _WINSOCK2API_
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
其中定义了_WINSOCKAPI_宏就可以阻止winsock.h的内容被包含进来,
因为winsock.h里面是这样的:
#ifndef _WINSOCKAPI_
#define _WINSOCKAPI_
......
#endif