// HttpdDemo.cpp : Defines the entry point for the console application. // #include "stdafx.h" volatile bool g_bQuit = false; volatile long g_iThreadCount = 0; char g_sContentPath[512]; void MainThread(void*); void ConnectionThread(void*); int _tmain(int argc, _TCHAR* argv[]) { ::GetModuleFileNameA(NULL, g_sContentPath, 512); { int i = strlen(g_sContentPath) - 1; while ((i >= 0) && (g_sContentPath[i] != '\\')) { i--; } i--; while ((i >= 0) && (g_sContentPath[i] != '\\')) { i--; } g_sContentPath[i + 1] = 0; strcat(g_sContentPath, "content"); }; { WSADATA WSAData; WSAStartup(MAKEWORD(2, 1), &WSAData); } printf("Starting in path %s\r\n", g_sContentPath); while (!g_bQuit) { if (kbhit()) { char c = getch(); if (c == 27) { g_bQuit = true; } } ::Sleep(50); } printf("Waiting for threads to finish...\r\n"); while (g_iThreadCount > 0) { ::Sleep(50); } printf("Finished.\r\n"); ::WSACleanup(); return 0; }