为什么用winsock2.h会出现这个编译问题?
g:\program files\microsoft sdk\include\winsock2.h(109) : error C2011: 'fd_set' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(144) : warning C4005: 'FD_SET' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(88) : see previous definition of 'FD_SET'
g:\program files\microsoft sdk\include\winsock2.h(153) : error C2011: 'timeval' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(209) : error C2011: 'hostent' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(222) : error C2011: 'netent' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(229) : error C2011: 'servent' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(241) : error C2011: 'protoent' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(397) : error C2011: 'sockaddr_in' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(407) : error C2011: 'WSAData' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(467) : warning C4005: 'SO_DONTLINGER' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(411) : see previous definition of 'SO_DONTLINGER'
g:\program files\microsoft sdk\include\winsock2.h(524) : warning C4005: 'AF_IPX' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(469) : see previous definition of 'AF_IPX'
g:\program files\microsoft sdk\include\winsock2.h(552) : warning C4005: 'AF_MAX' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(488) : see previous definition of 'AF_MAX'
g:\program files\microsoft sdk\include\winsock2.h(558) : error C2011: 'sockaddr' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(598) : error C2011: 'sockproto' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(637) : error C2011: 'linger' : 'struct' type redefinition
g:\program files\microsoft sdk\include\winsock2.h(650) : warning C4005: 'SOMAXCONN' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(553) : see previous definition of 'SOMAXCONN'
g:\program files\microsoft sdk\include\winsock2.h(675) : warning C4005: 'FD_READ' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(571) : see previous definition of 'FD_READ'
g:\program files\microsoft sdk\include\winsock2.h(678) : warning C4005: 'FD_WRITE' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(572) : see previous definition of 'FD_WRITE'
g:\program files\microsoft sdk\include\winsock2.h(681) : warning C4005: 'FD_OOB' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(573) : see previous definition of 'FD_OOB'
g:\program files\microsoft sdk\include\winsock2.h(684) : warning C4005: 'FD_ACCEPT' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(574) : see previous definition of 'FD_ACCEPT'
g:\program files\microsoft sdk\include\winsock2.h(687) : warning C4005: 'FD_CONNECT' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(575) : see previous definition of 'FD_CONNECT'
g:\program files\microsoft sdk\include\winsock2.h(690) : warning C4005: 'FD_CLOSE' : macro redefinition
g:\program files\microsoft sdk\include\winsock.h(576) : see previous definition of 'FD_CLOSE'
g:\program files\microsoft sdk\include\winsock2.h(1622) : error C2375: 'accept' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(744) : see declaration of 'accept'
g:\program files\microsoft sdk\include\winsock2.h(1643) : error C2375: 'bind' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(749) : see declaration of 'bind'
g:\program files\microsoft sdk\include\winsock2.h(1662) : error C2375: 'closesocket' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(754) : see declaration of 'closesocket'
g:\program files\microsoft sdk\include\winsock2.h(1681) : error C2375: 'connect' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(756) : see declaration of 'connect'
g:\program files\microsoft sdk\include\winsock2.h(1702) : error C2375: 'ioctlsocket' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(761) : see declaration of 'ioctlsocket'
g:\program files\microsoft sdk\include\winsock2.h(1723) : error C2375: 'getpeername' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(766) : see declaration of 'getpeername'
g:\program files\microsoft sdk\include\winsock2.h(1744) : error C2375: 'getsockname' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(771) : see declaration of 'getsockname'
g:\program files\microsoft sdk\include\winsock2.h(1767) : error C2375: 'getsockopt' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(776) : see declaration of 'getsockopt'
g:\program files\microsoft sdk\include\winsock2.h(1788) : error C2375: 'htonl' : redefinition; different linkage
g:\program files\microsoft sdk\include\winsock.h(783) : see declaration of 'htonl'