diff options
| author | alpine <[email protected]> | 2020-06-13 22:27:52 +0200 |
|---|---|---|
| committer | alpine <[email protected]> | 2020-06-13 22:27:52 +0200 |
| commit | bad7b4f2d19f95b278fdcb3056be01cae9af1dbb (patch) | |
| tree | 5bef91f910a2c03d74df9693a077ee33b2fe7886 /server/src/main.cpp | |
| parent | Initial commit (diff) | |
| download | loader-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.cpp | 34 |
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(); } |