From a83776dc788966a8871309120e9e263d80140e36 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 9 May 2018 23:45:32 +0200 Subject: [PATCH] Progress --- Makefile | 2 +- src/necronda-server.cpp | 45 ++++++++++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 472de79..7791d24 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ install: @echo "Start compiling..." - g++ ./src/necronda-server.cpp -o ./bin/necronda-server + g++ src/necronda-server.cpp -o bin/necronda-server -std=c++17 -fPIC @echo "Finished compiling!" diff --git a/src/necronda-server.cpp b/src/necronda-server.cpp index 7828adf..c8036f4 100644 --- a/src/necronda-server.cpp +++ b/src/necronda-server.cpp @@ -7,19 +7,50 @@ #include -#include "http/HttpHeader.cpp" +#include "network/Connection.cpp" +#include "network/http/HttpHeader.cpp" using namespace std; int main() { - cout << "Hello, World!1" << endl; - HttpHeader *header = new HttpHeader(); + cout << "Necronda Server 3.0" << endl << "by Lorenz Stechauner" << endl << endl; - header->setField("Content-Length", "80"); - header->setField("Hermann", "500"); + unsigned short PORT = 8080; - cout << header->getField("Content-Length") << " " << header->getField("Hermand") << endl; - return 0; + Connection *s; + try { + s = new Connection(); + } catch (char *msg) { + cout << "Unable to create socket: " << msg << endl; + exit(1); + } + + try { + s->bind(PORT); + } catch (char *msg) { + cout << "Unable to bind socket to port " << PORT << ": " << msg << endl; + exit(2); + } + + try { + s->listen(256); + } catch (char *msg) { + cout << "Unable to listen on socket: " << msg << endl; + exit(3); + } + + while (true) { + try { + Connection *client = s->accept(); + cout << client->getPeerAddress()->toString() << ":" << client->getPeerPort() << " <-> " + << client->getSocketAddress()->toString() << ":" << client->getSocketPort() << endl; + } catch (char *msg) { + cout << msg << endl; + break; + } + } + + return 0; }