#include #include #include #include #include struct Server server_constructor(int domain, int service, int protocol, ulong interface, int port, int backlog, pthread_t(*launch)(struct Server *server)){ struct Server server; server.domain=domain; server.service=service; server.protocol=protocol; server.interface=interface; server.port=port; server.backlog=backlog; server.address.sin_family=domain; server.address.sin_port=htons(port); server.address.sin_addr.s_addr=htonl(interface); server.socket = socket(domain,service,protocol); if(server.socket == 0){ perror("failed to connect to socket...\n"); exit(1); } if (bind(server.socket, (struct sockaddr *)&server.address, sizeof(server.address)) < 0){ perror("failed to bind socket...\n"); exit(1); } if(listen(server.socket, server.backlog) < 0){ perror("failed to start listening...\n"); exit(1); } server.accepted_socket=NULL; server.launch=launch; server.running=true; return server; };