Ваша программа не выполняет никаких действий в зависимости от того, что запрашивает клиент. Когда он загружает страницу, сервер, скорее всего, получит запрос GET /
.
Возможно, вам необходимо дать имя входным данным формы, чтобы их можно было идентифицировать при чтении значений. Например:
<input type="text" name="formvalue">
Когда вы отправляете форму, она получает либо GET
, либо POST
в зависимости от действия отправки. В вашем случае он будет выполнять GET
, поэтому вам нужно будет искать данные формы в вашем URL в качестве параметров. См. html формы в w3cschools .
Например, вы получите GET /?formvalue=hello
, если вы нажмете кнопку отправки с текстом привет в текстовом поле .
Затем вам нужно обработать этот случай в логах сервера c. Некоторый псевдокод:
if (request.parameters.contains("formvalue")) {
std::string value = request.get
cout << R"(<h1 id="h1_id">You entered: )" << request.parameters.get("formvalue") << "</h1>\n";
}
Одна вещь, которую вы, вероятно, должны рассмотреть, это использовать библиотеку C / C ++, которая реализует биты CGI для вас. См. вопрос с тегами fastcgi и c ++ . Существуют также библиотеки HTTP, которые помогут вам разобраться со спецификой протокола (анализ URL-адресов, анализ заголовков HTTP и т. Д. c.).
Я настоятельно рекомендую вам использовать анализатор пакетов, например Wireshark, для просмотра запросов и ответов между вашим сервером и вашим клиентом.