// Server.cpp
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>
#include <WinSock2.h>
#pragma comment(lib, "Ws2_32.lib")
#define DEFAULT_BUFLEN 512
#define DEFAULT_PORT "27015"
int _tmain()
{
WSADATA wsaData;
int iResult;
SOCKET ConnectSocket;
struct sockaddr_in clientService;
char *sendbuf = "this is a test";
char recvbuf[DEFAULT_BUFLEN];
int recvbuflen = DEFAULT_BUFLEN;
iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != NO_ERROR)
{
printf("WSAStartup failed: %d/n", iResult);
return 1;
}
// Create a SOCKET for connecting to server
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
printf("Error at socket(): %ld/n", WSAGetLastError() );
WSACleanup();
return 1;
}
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(27015);
bind(ConnectSocket, (SOCKADDR*)&service, sizeof(service));
listen(ConnectSocket, 10);
int len;
sockaddr_in addrclient;
SOCKET s_d = accept(ConnectSocket,(sockaddr*)&addrclient,&(len=sizeof(sockaddr)));
do
{
memset(recvbuf, 0x00, recvbuflen);
iResult = recv(s_d, recvbuf, recvbuflen, 0);
if ( iResult > 0 )
printf("Bytes received: %d. [%s]/n", iResult, recvbuf);
else if ( iResult == 0 )
printf("Connection closed/n");
else
printf("recv failed: %d/n", WSAGetLastError());
Sleep(3000);
} while( iResult > 0 );
return 0;
}
// Client.cpp
#include <winsock2.h>
#include <stdio.h>
#include <tchar.h>
#pragma comment(lib, "Ws2_32.lib")
#define DEFAULT_BUFLEN 512
#define DEFAULT_PORT "27015"
#define NO_FLAGS_SET 0
int _tmain()
{
WSADATA Data;
SOCKADDR_IN destSockAddr;
SOCKET destSocket;
unsigned long destAddr;
int status;
int numsnt;
char *toSendtxt = "Test String";
status = WSAStartup(MAKEWORD(2, 2), &Data);
destSocket=socket(AF_INET, SOCK_STREAM, 0);
destSockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
destSockAddr.sin_port = htons(27015);
destSockAddr.sin_family = AF_INET;
status=connect(destSocket, (LPSOCKADDR) &destSockAddr, sizeof(destSockAddr));
if (status == SOCKET_ERROR)
{
status=WSACleanup();
return(1);
}
while(1)
{
numsnt=send(destSocket, toSendtxt, strlen(toSendtxt) + 1, NO_FLAGS_SET);
if (numsnt != (int)strlen(toSendtxt) + 1)
{
status=closesocket(destSocket);
if (status == SOCKET_ERROR)
status=WSACleanup();
return(1);
}
/* Wait before sending the message again */
Sleep(1);
} /* while */
}