/* * server.hpp * * Created on: 20 сент. 2022 г. * Author: alexander */ #pragma once #include #include #include #include #include namespace azh { namespace io = boost::asio; enum class IPV { V4, V6 }; class TCPServer { public: TCPServer(IPV ipv, int port); int run(); void broadcast(const std::string& message); private: IPV _ipVersion; int _port; io::io_context _ioContext; io::ip::tcp::acceptor _acceptor; std::optional _socket; std::unordered_set _connections; private: void startAccept(); }; }