From 7e287a8ca7164e871965339196511fdcf0248921 Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Fri, 25 Sep 2026 21:12:03 -0500 Subject: init --- Server.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 Server.c (limited to 'Server.c') diff --git a/Server.c b/Server.c new file mode 100755 index 0000000..3fb55c6 --- /dev/null +++ b/Server.c @@ -0,0 +1,44 @@ +#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; +}; -- cgit v1.3