added simple socket server
This commit is contained in:
40
os.h
40
os.h
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user