rendered paste body#include <windows.h>
#include <stdio.h>
#include <winsock.h>
#include <iostream>
using namespace std;
int filterSocket(char fBytes[]);
WORD sockVersion;
WSADATA wsaData;
SOCKET listeningSocket;
SOCKADDR_IN serverInfo;
int nret, lret, i;
int nReadBytes;
const int kBufferSize = 1024;
char acReadBuffer[kBufferSize];
char buf[33];
char bConnect1[] = {0x33, 0x00, 0x00,
0x00, 0x46, 0x72,
0x7A, 0x40, 0x52,
0x30, 0x78, 0x35,
0x08 };
char bConnect2[] = {0x0d, 0x00};
SOCKET AcceptConnection(SOCKET ListeningSocket, sockaddr_in& sinRemote)
{
int nAddrSize = sizeof(sinRemote);
return accept(ListeningSocket, (sockaddr*)&sinRemote, &nAddrSize);
}
int startWinsock(){
sockVersion = MAKEWORD(1 , 1);
if(WSAStartup(sockVersion, &wsaData) != 0)
{
printf("WSAStartup Failed\n");
nret = WSAGetLastError();
itoa(nret, buf, 10);
printf(buf);
printf("\n");
WSACleanup();
return 1;
}
else{
listeningSocket = socket(AF_INET,
SOCK_STREAM,
IPPROTO_TCP);
if(listeningSocket == INVALID_SOCKET)
{
nret = WSAGetLastError();
printf("Sockets are bad");
itoa(nret, buf, 10);
printf(buf);
WSACleanup();
return 2;
}
serverInfo.sin_family = AF_INET;
serverInfo.sin_addr.s_addr = INADDR_ANY;
serverInfo.sin_port = htons(8484);
nret = bind(listeningSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
if (nret == SOCKET_ERROR) {
nret = WSAGetLastError();
printf("bind");
WSACleanup();
return 3;
}
nret = listen(listeningSocket, 10); // Up to 10 connections may wait at any
if (nret == SOCKET_ERROR) {
nret = WSAGetLastError();
printf("listen");
WSACleanup();
return 4;
}
while(1)
{
printf("listening\n");
sockaddr_in sinRemote;
SOCKET sd = AcceptConnection(listeningSocket, sinRemote);
if (sd != INVALID_SOCKET)
{
std::cout << "Accepted connection from " <<
inet_ntoa(sinRemote.sin_addr) << ":" <<
ntohs(sinRemote.sin_port) << ".\n";
send(sd, bConnect2, sizeof(bConnect2), 0);
cout << "Sent" << sizeof(bConnect2) << " bytes to client." << endl;
send(sd, bConnect1, sizeof(bConnect1), 0);
cout << "Sent" << sizeof(bConnect1) << " bytes to client." << endl;
nReadBytes = recv(sd,acReadBuffer, kBufferSize, 0);
}
else{
printf("Bad Socket");
}
}
}
return 0;
printf("Success\n");
}
int main()
{
printf("Start\n");
if(startWinsock() != 0)
printf("Error\n");
else
printf("success\n");
WSACleanup();
closesocket(listeningSocket);
printf("Exit\n");
Sleep(1000);
return 0;
}