Ваш код работает просто отлично. Просто современные веб-серверы не позволяют вам подключаться без надлежащей аутентификации, используя user-agen, заголовки и т. Д. Попробуйте следующие команды в вашей оболочке.
telnet yourserver.com 80
<some messages from server>
GET /index.html HTTP/1.0
Если ответ совпадает с тем, что вы получаете, используя программу на C ++, тогда в основном все, что вам нужно сделать, - это отправить больше информации для правильной аутентификации.
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent': user_agent}
И отправьте эти данные вместе с вашим GET-запросом.