implement basic network server
Some checks failed
Test and Deploy / test (push) Failing after 13s
Test and Deploy / docs (push) Has been skipped

This commit is contained in:
2024-07-07 19:50:28 -07:00
parent 074798ed62
commit 1424925cbf
10 changed files with 238 additions and 58 deletions

28
include/lfnetwork.h Normal file
View File

@ -0,0 +1,28 @@
#ifndef LIBFLINT_NET_H
#define LIBFLINT_NET_H
#include <netdb.h>
typedef enum ServerType {
SERVERTYPE_TCP,
SERVERTYPE_UDP
} ServerType;
typedef struct Server {
ServerType server_type;
int fd;
int port;
void (*handler)(struct Server *s);
} Server;
#define DEFAULT_BACKLOG 10
Server *new_server(ServerType type, const char *port, void(handler)(Server *s));
void delete_server(Server *s);
int serve(Server *s, int backlog_size);
void *get_in_addr(struct sockaddr *sa);
// Example handlers
void handler_tcp_echo(Server *s);
#endif //LIBFLINT_NET_H