vs2013使用套接字编程编译的时候提示类型重定义,不同的链接,该如何解决

vs2013使用套接字编程编译的时候提示类型重定义,不同的链接
本人刚接触win socket网络编程,按着老师的步骤一步一步敲的代码,其中需要的有文件以及lib文件也按着msdn帮助文档加载了,可是编译的时候出现很多问题,麻烦大神帮忙看看!!

源码:

#include <windows.h>
#include <stdio.h>
#include <winsock2.h>
#include <ws2tcpip.h>

int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) 
{                              
printf("WSAStartup failed with error: %d\n", err);
return 1;
}

if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) 
{                 
printf("Could not find a usable version of Winsock.dll\n");
WSACleanup();
return 1;
}

SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);

bind(sockSrv, (SOCKADDR*)(&addrSrv), sizeof(SOCKADDR));

listen(sockSrv, 5);

SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);

while (1)
{
SOCKET sockCoon = accept(sockSrv, (SOCKADDR*)(&addrClient), &len);
char sendBuf[100];
sprintf(sendBuf, "welcome %s connect!!!", inet_ntoa(addrClient.sin_addr));
send(sockCoon, sendBuf, strlen(sendBuf) + 1, 0);
char recvBuf[100];
recv(sockCoon, recvBuf, 100, 0);
printf("%s\n", recvBuf);
closesocket(sockCoon);
}
}
vs2013使用套接字编程编译的时候提示类型重定义,不同的链接,该如何解决
------解决思路----------------------
#include <winsock2.h>放在 #include <windows.h>的上面,或者直接不要 #include <windows.h>
------解决思路----------------------
网络相关的



#include <winsock2.h>
#include <mswsock.h>

#pragma comment(lib,"ws2_32.lib")


------解决思路----------------------
改变下头文件包含顺序:

#include <stdio.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>