#define DJSTD_BASIC_ENTRY #include "core.c" #include "signal.h" Server *server = NULL; void handleSigint(int dummy) { if (server) { print("\n"); print("Closing server socket.\n"); serverClose(server); print("Success\n."); } exit(0); } int djstd_entry(Arena *arena, StringList args) { signal(SIGINT, &handleSigint); int port = 8080; Int32Result portParsed = parsePositiveInt(args.data[0]); if (portParsed.valid) { port = portParsed.result; } print("Starting server on port %d\n", port); Server myserver = serverInit((ServerInitInfo){ .concurrentClients=16, .port=port, .memory=Megabytes(64), }); server = &myserver; serverListen(&myserver); Client *client = serverAccept(&myserver); CharList buf = PushFullListZero(arena, CharList, 257); uint64 bytesRead = clientRead(client, (void *)buf.data, buf.length - 1); if (bytesRead > 0) { print("Client said: %s\n", buf.data); print("Now that's insightful.\n"); } else if (bytesRead == -1) { print("Connection error\n"); } clientClose(client); return 0; }