int main(void) { struct mg_server *server1, *server2; server1 = mg_create_server((void *) "1"); server2 = mg_create_server((void *) "2"); mg_add_uri_handler(server1, "/", request_handler); mg_add_uri_handler(server2, "/", request_handler); // Make both server1 and server2 listen on the same socket mg_set_option(server1, "listening_port", "8080"); mg_set_listening_socket(server2, mg_get_listening_socket(server1)); // server1 goes to separate thread, server 2 runs in main thread. // IMPORTANT: NEVER LET DIFFERENT THREADS HANDLE THE SAME SERVER. mg_start_thread(serve, server1); serve(server2); return 0; }
int main(int argc, char *argv[]) { char* port = "2000"; struct mg_server *server = mg_create_server(NULL, NULL); if (argc > 1) port = argv[1]; printf("\nHttp server listening on port %s\n", port); mg_set_option(server, "document_root", "."); // Serve current directory mg_set_option(server, "listening_port", port); for (;;) { mg_poll_server(server, 1000); // Infinite loop, Ctrl-C to stop if (mg_get_listening_socket(server) == -1) { // unable to connect _sleep(500); } } mg_destroy_server(&server); return 0; }