#ifndef __BETACORE_SERVER_HPP__
|
|
#define __BETACORE_SERVER_HPP__
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <iostream>
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/poll.h>
|
|
#include <netinet/in.h>
|
|
|
|
#include <signal.h>
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
#include <thread>
|
|
#include <utility>
|
|
#include <functional>
|
|
#include "common.hpp"
|
|
|
|
namespace betacore
|
|
{
|
|
|
|
|
|
class Server
|
|
{
|
|
private:
|
|
fd_set rset;
|
|
bool online = false;
|
|
bool server_running= false;
|
|
int port;
|
|
int server_socket;
|
|
std::vector<int> clients;
|
|
struct sockaddr_in server_address;
|
|
void start();
|
|
void shutdown();
|
|
void listener();
|
|
void read_socket(int client);
|
|
void forward_message(int client,char buffer[BUFFER_LENGTH] );
|
|
public:
|
|
Server(int port);
|
|
void off();
|
|
bool running();
|
|
|
|
};
|
|
} // namespace betacore
|
|
|
|
#endif
|