#pragma once #ifdef WIN32 #include #pragma comment(lib, "ws2_32.lib") #else #include #include #include #include #include #include #endif #include #include #include #include #include #include "util.hpp" constexpr auto PORT_NUM = 6969; constexpr auto BUFFER_SIZE = 255; namespace server { class c_client { SOCKET m_socket{ }; in_addr m_address{ }; ulong_t m_hwid{ }; public: c_client( SOCKET socket, in_addr& address ) : m_socket( socket ), m_address( address ) { } ~c_client( ) { closesocket( m_socket ); } void decode_buffer( uint8_t* buf, size_t length ) { auto key = buf[ 0 ]; for( size_t i{ 1 }; i < length; ++i ) buf[ i ] ^= key; } auto get_ip( ) { return inet_ntoa( m_address ); } std::vector< byte > receive_message( ); bool send_message( byte* msg, size_t length ); bool send_message( const char* ); //handles messages, hwid etc void handle_buffer( byte* msg ); virtual bool handle( ); }; }