added simple socket server

This commit is contained in:
Daniel Ledda
2025-11-27 23:45:15 +01:00
parent cbedadd36e
commit 9b772e2046
5 changed files with 187 additions and 34 deletions

40
os.h
View File

@@ -25,4 +25,44 @@ struct OS_Thread {
OS_Thread os_createThread(void *(*entry)(void *ctx), void *ctx);
// ### Network I/O ###
typedef struct Address Address;
struct Address;
typedef struct Socket Socket;
struct Socket;
typedef struct Client Client;
struct Client {
Address *clientAddressData;
Socket *socket;
};
DefineList(Client, Client);
typedef struct Server Server;
struct Server {
Arena *arena;
Address *serverAddressData;
uint32 serverPort;
Socket *socket;
ClientList clients;
bool listening;
};
typedef struct ServerInitInfo ServerInitInfo;
struct ServerInitInfo {
uint16 port;
uint32 concurrentClients;
uint64 memory;
};
Server serverInit(ServerInitInfo info);
void serverListen(Server *s);
Client *serverAccept(Server *s);
void serverClose(Server *s);
uint64 clientRead(Client *client, void *dest, size_t bytes);
void clientWrite(Client *client);
void clientClose(Client *client);
#endif