64,647
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib")
BOOL InitSocket()
{
WORD word;
WSAData wsaData;
word = MAKEWORD(2, 2);
SecureZeroMemory(&wsaData, sizeof(WSAData));
if (WSAStartup(word, &wsaData))
{
return FALSE;
}
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
SOCKET listensock, acceptsock;
sockaddr_in sockAddr = {0};
sockaddr_in sockClient;
int iClientCount = 0;
int iLength = 0;
SecureZeroMemory(&sockClient, sizeof(sockaddr_in));
listensock = INVALID_SOCKET;
acceptsock = INVALID_SOCKET;
if (!InitSocket())
{
printf("InitSocket Failed\n");
goto exit;
}
listensock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (listensock < 0)
{
printf("socket Failed. Error code : %d\n", WSAGetLastError());
goto exit;
}
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(10001);
sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(listensock, (sockaddr *)&sockAddr, sizeof(sockaddr)))
{
printf("bind Failed. Error code : %d\n", WSAGetLastError());
goto exit;
}
if (listen(listensock, 5))
{
printf("listen Failed. Error code : %d\n", WSAGetLastError());
goto exit;
}
while (true)
{
acceptsock = accept(listensock, (sockaddr*)&sockClient, &iLength);
printf("%d\n", ++iClientCount);
}
exit:
WSACleanup();
if (INVALID_SOCKET != listensock)
{
closesocket(listensock);
listensock = INVALID_SOCKET;
}
if (INVALID_SOCKET != acceptsock)
{
closesocket(acceptsock);
acceptsock = INVALID_SOCKET;
}
system("Pause");
return 0;