aboutsummaryrefslogtreecommitdiff
path: root/server/src/main.cpp
diff options
context:
space:
mode:
authoralpine <[email protected]>2020-06-13 22:27:52 +0200
committeralpine <[email protected]>2020-06-13 22:27:52 +0200
commitbad7b4f2d19f95b278fdcb3056be01cae9af1dbb (patch)
tree5bef91f910a2c03d74df9693a077ee33b2fe7886 /server/src/main.cpp
parentInitial commit (diff)
downloadloader-bad7b4f2d19f95b278fdcb3056be01cae9af1dbb.tar.xz
loader-bad7b4f2d19f95b278fdcb3056be01cae9af1dbb.zip
Client.
Message encryption. Packet handler. Disconnect event handler.
Diffstat (limited to 'server/src/main.cpp')
-rw-r--r--server/src/main.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/server/src/main.cpp b/server/src/main.cpp
index f34c433..9db266f 100644
--- a/server/src/main.cpp
+++ b/server/src/main.cpp
@@ -2,13 +2,39 @@
#include "util/io.h"
#include "util/commands.h"
#include "server/server.h"
+#include "util/xor.h"
int main(int argc, char *argv[]) {
io::init(false);
- tcp::server server;
- server.start("6666");
- server.start("8981");
+ tcp::server server("6666");
- std::cin.get();
+ server.start();
+
+ server.connect_event.add([&](tcp::client &client) {
+ io::logger->info("{} connected.", client.get_ip());
+ });
+
+ server.disconnect_event.add([&](tcp::client &client) {
+ auto it = std::find_if(server.client_stack.begin(), server.client_stack.end(), [&](tcp::client &c) {
+ return client.get_socket() == client.get_socket();
+ });
+
+ server.client_stack.erase(it);
+ client.cleanup();
+
+ io::logger->info("{} disconnected.", client.get_ip());
+ });
+
+ server.receive_event.add([&](tcp::packet_t &packet, tcp::client &client) {
+ if (!packet) return;
+
+ io::logger->info("{} : {}", packet.uid.data(), packet.message);
+
+ tcp::packet_t resp("hello nigga", tcp::packet_type::write, "1234567890");
+ client.write(resp.message.data(), resp.message.size());
+ });
+
+ std::thread t{tcp::server::monitor, std::ref(server)};
+ t.join();
}