#ifndef TCPServer_h__ #define TCPServer_h__ #include #include #include #include "NetworkServer.h" class TCPServer : public NetworkServer { public: TCPServer(); ~TCPServer(); void AcceptNewConnections(int& nextPlayerID, std::map& connectedPlayers); void Receive(Packet & packet, PlayerDefinition & playerDefinition); void Send(Packet & packet, PlayerDefinition & playerDefinition); void Send(Packet & packet); void Disconnect(); private: // TCP logic boost::asio::io_service m_IOService; std::unique_ptr acceptor; boost::shared_ptr lastReceivedSocket; int readBuffer(char* data, PlayerDefinition& playerDefinition); PlayerID getPlayerIDFromEndpoint(const std::map& connectedPlayers, boost::asio::ip::address address, unsigned short port); }; #endif