Здравствуйте, TailWind, Вы писали:
TW>Подскажите новичку, как организовать структуру программы
Возмите готовую библиотеку.
https://github.com/yhirose/cpp-httplib
TW>Нужно чтобы был Keep Alive. То есть чтобы tcp соединение не разрывалось после получения одной страницы, а ждало следующую
Какие проблемы?
TW>На каждое соединение создавать поток?
Нет не нужно. Смотрите в сторону
https://think-async.com/Asio/ https://libuv.org/
TW>Есть какое-то ограничение на количество сокетов и потоков?
Ограничения всегда есть