#ifndef Server_h #define Server_h #include #include #include #include struct AcceptedSocket{ int socketFD; struct sockaddr_in address; int error; bool succ; pthread_t thread_id; bool shutdown; struct AcceptedSocket *next; }; struct Server{ int domain; int service; int protocol; u_long interface; int port; int backlog; bool running; struct sockaddr_in address; int socket; char *html_folder; struct AcceptedSocket *accepted_socket; pthread_t (*launch)(struct Server *server); void (*on_message)(struct Server *server, char message[], ssize_t amountRecv, int socketFD); void (*on_disconnect)(struct Server *server, int socketFD); }; /* * AF_INET, SOCK_STREAM, 0, INADDR_ANY, port, 10, launch_socket * or * AF_INET, SOCK_STREAM, 0, INADDR_ANY, port, 10, launch */ struct Server server_constructor(int domain, int service, int protocol, u_long interface, int port, int backlog, pthread_t (*launch)(struct Server *server)); #endif /* Server_h */