All pastes #419184 Raw Edit

Anonymous

public cpp v1 · immutable
·published 2007-04-01 03:39 UTC
rendered paste body
#include "stdafx.h"#include <winsock2.h>#include <iostream>#define IP_ADDRESS "127.0.0.1"#define IP_PORT 12934#define RECVBUFF_SIZE 500WSAData wsaData;sockaddr_in serverAddr;SOCKET m_socket;int isSocketOK(int retValue, TCHAR * msg){	if (retValue!=SOCKET_ERROR)		return TRUE;	std::wcout << msg <<_TEXT(": ")<< WSAGetLastError() << _TEXT("\n");	switch(WSAGetLastError())	{		case WSAEHOSTDOWN: std::wcout << L"Host is down"; break;		case WSAECONNREFUSED: std::wcout << L"Connection Refused"; break;	}	WSACleanup();	return FALSE;}int _tmain(int argc, _TCHAR* argv[]){	int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);	if(iResult != NO_ERROR)	{		std::wcout << L"Error at Socket startup\n" << iResult << L"\n";		return -1;	}	m_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);	if(m_socket == INVALID_SOCKET)	{		std::wcout << L"Error in socket" << WSAGetLastError() << "\n";		WSACleanup();		return -1;	}	std::wcout << L"Socket Created\n";	serverAddr.sin_family = AF_INET;	serverAddr.sin_addr.s_addr = inet_addr(IP_ADDRESS);	serverAddr.sin_port = htons(IP_PORT);	if (!isSocketOK(bind(m_socket,(SOCKADDR*)&serverAddr, sizeof serverAddr),		"Failed to bind server socket")) 			return -1;	std::wcout << L"Socket bound\n";	if(!isSocketOK(listen(m_socket,SOMAXCONN),"Listen failed")) return -1;	std::wcout << L"Listening... \n";	int sizeofSin = sizeof serverAddr;	int bytes;	do	{		SOCKET clientSocket = accept(m_socket,(SOCKADDR*)&serverAddr,&sizeofSin);		if(!isSocketOK(listen(m_socket,SOMAXCONN),"Accept failed")) return -1;		TCHAR recvBuff[RECVBUFF_SIZE +1];		int buffLen = RECVBUFF_SIZE*sizeof(TCHAR);		TCHAR sendBuff[] = _TEXT("What is next\0");		do		{			bytes = recv(clientSocket,recvBuff,buffLen,0);			if(bytes < 0) break;			recvBuff[bytes] = 0;			std::wcout << _T(recvBuff) << _T("\n");			bytes = send(clientSocket,sendBuff,sizeof(sendBuff),0);		} while (0 < bytes);	} while (WSAGetLastError() == WSAECONNRESET);	WSACleanup();	return 0;}