好像inlucde windows 会默认使用winsocket1 ,我们现在写程序都是使用socket2 . 编译会冲突.
1.种方法  
#define WIN32_LEAN_AND_MEAN
放在windows.h 之前.
2. 先引入socket2.h文件.
3. 
项目 -> 属性 -> C/C++ -> 预处理器 -> 预处理器定义在其中添加 : WIN32_LEAN_AND_MEAN
WIN32_LEAN_AND_MEAN: Windows 头文件使用此符号来排除很少使用的头文件。请参考 Windows.H,以确定当定义了此符号时,将排除的文件。由于 MFC 定义 WIN32_LEAN_AND_MEAN,所有 MFC 项目自动都使用它。
下面具体分析一下问题是怎么发生的。参考
http://support.microsoft.com/kb/166474/zh-cn
http://tieba.baidu.com/p/705524374