#ifndef _SERVER #define _SERVER #include "includes/sock.hpp" /* Server class - This class is used to create a TCP/UDP server. It inherits from the 'Sock' class. */ class Server : public Sock { private: /* Address of the peer/client */ std::string peer_addr; public: /* Constructors */ Server() {} Server(char protocol, const char* address, int port) : Sock(protocol, address, port) {} /* Destructor */ ~Server(); /* Method to create socket - overrides (i.e. extends) method from parent class */ void create_socket() override; /* FOR TCP ONLY - Wait for a peer to connect to this socket, and store the result in 'other_socket' */ void wait_for_peer(); /* FOR TCP - Send data to the peer socket FOR UDP - Send data to the client, from which data was received. FOR UDP, this function MUST be called after recvAll() */ void sendAll(std::string to_send); /* Receive data from peer socket */ char* recvAll(); /* Non-blocking receive */ char* recvAllNB(); /* Return the address of the peer */ std::string get_peer_addr(); /* Return the type of socket */ int get_type() override; }; #endif