Exemple #1
0
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;
}
Exemple #2
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;
}