Как на С++ написать простой HTTP сервер Windows | Ubuntu Linux

Загрузить исходный код С++ WinAPI Visual Studio 2019 ЗДЕСЬ

Загрузить исходный код С++ для Ubuntu Linux ЗДЕСЬ

Для компиляции и запуска под Windows последовательность действий такая:

  1. Открыть проект для Visual Studio 2019 и скомпилировать
  2. Запускаем скомпилированный ЕХЕ на выполнение. Запуститься окно консольного приложения
  3. Открыть браузер (например Chrome, Mozilla etc.), в адресной строке браузера набрать такой адрес: 127.0.0.1:8000
  4. После того как вы набрали адрес в строке браузера и перешли на этот адрес - браузер выдаст на экран текстовую страницу - ответ сервера (скриншот ниже).

Для компиляции и запуска под Ubuntu Linux последовательность действий такая:

  1. На рабочий стол (например с флешки) копируем файлы mycode.cpp и my.sh
  2. Правой кнопкой мыши нажимаем на файле my.sh, заходим в свойства этого файла, Доступ, и ставим галочку - Сделать файл исполняемым
  3. Запускаем Терминал, в Терминале переходим на рабочий стол командой: cd Desktop
  4. В Терминале даем команду: ./my.sh при этом запуститься g++ для компиляции файла mycode.cpp, в результате выполнения этой команды на рабочем столе должен появиться исполняемый файл mycode.out
  5. В Терминале набираем команду запуска файла сервера: ./mycode.out
  6. Открыть браузер (например Mozilla etc.), в адресной строке браузера набрать такой адрес: 127.0.0.1:8000
  7. После того как вы набрали адрес в строке браузера и перешли на этот адрес - браузер выдаст на экран текстовую страницу - ответ сервера (скриншот ниже).

Так же можете поекспериментировать - поменять в коде C++ номер порта для соединения, например 127.0.0.1:80, кроме того можно переименовать файл mycode.cpp в файл mycode.c и скомилировать его при помощи gcc (а не g++ как в нашем примере). Можно пойти далее- сделать себе статический IP на компьютере при помощи он- лайн сервиса https://www.noip.com/. Этот сервис позволяет сделать статический IP если вы не хотите провайдеру платить за статический IP, или у вас его просто нет, и провайдер вам выдает динамический IP. На этом он-лайн сервисе можно зарегистрироваться, у них на сайтесоздать доменное имя которое вы будете набирать в адресной строке браузера. Далее необходим скачать клиент DUC - это программа стоит у вас на компьютере, каждых 5 минут на сервер noip.com посылает ваш актуальный IP. Например вы создали доменное имя myhost.ddns.net. Каждые 5 минут программа клиент DUC с вашего компьютера посылает ваш актуальный IP на сервер noip.com и привязывает его к вашему доменному имени. На базе noip.com можно запустить свой http сервер - нужно в коде С++ поменять порт на 80, и ввести вместо 127.0.0.1 ваше доменное имя, то есть код С++ такой:


	result = getaddrinfo("myhost.ddns.net", "80", &hints, &addr);

Вы запустили клиент DUC, вы запустили свой http сервер на 80 порту, заходите в окне браузера по адресу: myhost.ddns.net - и браузер вас перемещает на сделанную вами страницу сервера.