Danbias/Code/Network/OysterNetworkServer/ServerMain.cpp

80 lines
1.6 KiB
C++
Raw Normal View History

2013-11-18 16:47:57 +01:00
#include <iostream>
#include <WinSock2.h>
#include "Listener.h"
#include "Client.h"
2013-11-18 16:47:57 +01:00
using namespace std;
using namespace Oyster::Network::Server;
2013-11-18 16:47:57 +01:00
#pragma comment(lib, "ws2_32.lib")
void ShutdownSockets();
bool InitSockets();
2013-11-21 14:49:30 +01:00
#include "../NetworkDependencies/Translator.h"
using namespace Oyster::Network;
using namespace ::Protocols;
int main()
{
2013-11-22 08:56:00 +01:00
unsigned char* recvBuffer = new unsigned char[255];
2013-11-21 14:49:30 +01:00
cout << "Server" << endl;
2013-11-22 08:56:00 +01:00
Translator t;
2013-11-19 14:21:25 +01:00
if(!InitSockets())
{
cout << "Sockets failed to initialize" << endl;
}
//Create socket
Listener listener;
listener.Init(9876);
//Start listening
2013-11-19 14:21:25 +01:00
//Accept a client
int clientSocket = listener.Accept();
2013-11-19 14:21:25 +01:00
Client client1(clientSocket);
cout << "First client connected." << endl;
//Accept a client
2013-11-19 14:21:25 +01:00
clientSocket = listener.Accept();
Client client2(clientSocket);
cout << "Second client connected." << endl;
2013-11-22 08:56:00 +01:00
client1.Send((unsigned char*)"Hej");
ProtocolHeader* header = NULL;
2013-11-19 14:21:25 +01:00
while(1)
{
2013-11-22 08:56:00 +01:00
client1.Recv(recvBuffer);
header = t.Translate(recvBuffer);
cout << header->clientID << ' ' << header->packageType << ' ' << header->size << endl;
cout << "Client1: " << ((ProtocolTest*)header)->textMessage << endl;
2013-11-19 14:21:25 +01:00
client2.Send(recvBuffer);
client2.Recv(recvBuffer);
2013-11-22 08:56:00 +01:00
header = t.Translate(recvBuffer);
cout << header->clientID << ' ' << header->packageType << ' ' << header->size << endl;
cout << "Client1: " << ((ProtocolTest*)header)->textMessage << endl;
client1.Send(recvBuffer);
2013-11-19 14:21:25 +01:00
}
2013-11-18 16:47:57 +01:00
ShutdownSockets();
2013-11-22 08:56:00 +01:00
delete[] recvBuffer;
system("pause");
return 0;
}
bool InitSockets()
{
WSADATA wsaData;
return WSAStartup(MAKEWORD(2, 2), &wsaData) == NO_ERROR;
}
void ShutdownSockets()
{
WSACleanup();
}