Zuoya, Так и понял.
В целях улучшения навыков будет очень не плохо изучить исходники хорошо написанного http парсера и научиться его использовать в своих проектах.
Умение читать и понимать чужой код очень важно сейчас, когда по максимуму стараются использовать уже готовые библиотеки.
Zuoya, При чем тут винда? :) Мой пост был для Михаил это он про винду писал.
Лично мое мнение - написать стоящую библиотеку достаточно сложно - HTTP нынче разросся до безобразия, очень сложно все охватить. Используйте готовый HTTP парсер. Я использовал в свое время http_parser от разработчиков libuv/node.js. Так же можно взять парсер из nginxа.
Есть и готовые "легкие" и свободные веб сервера на Си, которые можно переделать под свои нужды.
Владимир Коротенко, У меня не так много опыта работы с линуксом как хотелось бы.
В своей практике я не сталкивался с проблемами локализации в линуксе. В консоли UTF8, пишешь исходники в ней же - все довольны и счастливы. Но в целом использую другой подход - просто вывожу весь текст на английском. Не патриотично, зато работает и легко реализуется :-)
argumentvoid, У вас не русская винда? Ваша ситуация еще более сложная, т.к. кодировка по умолчанию не русская.
chcp меняет кодировку до следующей chcp или до перезапуска консоли.
Где-то в глубине языковых настроек есть такая настройка "Language for non-Unicode programs" (у меня английская винда). Поставьте в этой настройке Русский язык, перезагрузитесь и кодировка консоли должна стать cp866.
argumentvoid, Посмотрите файл cpp проекта другой программой, поддерживающей разные кодировки.
Например редактор Far manager это умеет или Notepad++. Убедитесь, что кодировка исходников cp866. Убедитесь по дате создния exe что он создан после последнего сохранения cpp файла.
После этого дайте в консоли команду chcp - она покажет текущюю кодировку.
Если кодировка исходников и кодировка консоли совпадет и исполняемый файл собран после последнего сохранения исходного - то русские буквы должны выводиться нормально.
argumentvoid, вы когда вносите какие-то изменения в исходники, то они не появляются автоматически в исполняемой программе - для этого нужно пройти процесс компиляции.
argumentvoid, На счет F5 не знаю. Студия возможно по F5 не захочет его пересобрать. Rebuild solution или Rebuild <имя проекта>.
Поищите (или погуглите) в настройках студии параметр, отвечающий за то в какой кодировке сохранять исходники по умолчанию и будет вам счастье. На вскидку не подскажу.
И еще добавлю. В консоли винды нельзя быть уверенным, что у пользователя в консоли будет какая-то конкретная кодировка. Это актуально особенно в случае если вы пишите консольное приложение, которое планируете выпускать в мир.
Там достаточно было для локализации того, что выше описывал. Не знаю как так получается...
Это у вас поверхностное впечатление.
Видимо тогда у вас исходники сохранялись в кодировке совпадающей с кодировкой консоли. И вам это помогло. Но стоило в консоли перед запуском вашей программы дать команду chcp с указанием кодировки отличной от кодировки вашей программы, то вы бы снова словили эту проблему.
Обратите внимание, что родные утилиты винды нормально отображают русский текст, какая бы кодировка не была установлена в консоли (chcp 1251 или chcp 866) - как раз потому, что они перекодируют текст в правильную кодировку.
И не поможет - это надо делать в комплексе, все 4 пункта, что я написал в ответе. Это правильный подход и он работает.
Вы же сейчас можете просто сохранить исходники в cp866. А с правильным подходом разбираться позже.
Просто сохраните исходники в UTF8 или конвертируйте. Для хранения строк используйте wchar_t...
В старых версиях студии таких проблем не наблюдал.
Вы ошибаетесь. Эта проблема в винде существует изначально. Просто потому, что в ее консоли можно менять кодировку. В никсах, как правило, кодировка устанавливается один раз при установке ОС и обычно это UTF8.
Виндовая косоль вообще с UTF плохо дружит (в том смысле, что родные виндовые консольные команды ее не понимают).
Роутеры, как правило, к интернету подключаются проводом, соответственно ваш радиосигнал полученный роутером по вай-фай конвертируется в сигнал для кабеля. Конечно, есть варианты и беспроводного подключения к интернет. На самом деле как конкретно вы подключены к интернет особой разницы нет.
Интернет работает на протоколе TCP/IP, почитайте что-нибудь про него, информации много.
Интернет работает на уровне выше, чем "вай-фай" и другие "железные" каналы связи, поэтому ему без разницы среда передачи данных. Например, когда вы отправляете с телефона запрос веб серверу, то среда передачи поменяется несколько раз пока дойдет до сервера и ответ вернется к вам.
Ну вы же записали строку полученную в параметре в канал.
Какая разница между строкой полученной в параметре и строкой полученной из файла?
Никакой разницы, когда строка уже получена.
Разница только в способе получения строки. Просто реализуйте чтение из файла.
MaksSmag, домен - это всегда сначала DNS, а потом уже все остальное.
Я так понял, вы вместе с доменом купили и DNS хостинг. Настройте там вашу зону, добавьте записи для сайта (A) и для почты (MX). Для теста настроек DNS используйте утилиту nslookup или dig в линуксе.
После того как DNS заработает (nslookup по вашему доменному адресу будет возвращать правильные данные), можете настраивать все остальное: nginx, почтовик, ...
В целях улучшения навыков будет очень не плохо изучить исходники хорошо написанного http парсера и научиться его использовать в своих проектах.
Умение читать и понимать чужой код очень важно сейчас, когда по максимуму стараются использовать уже готовые библиотеки.