TiNik Nikolay
Участник
Offline
|
|
« : 21-12-2006 11:41 » |
|
Привет всем!!!:) Мне очень интересно как мона программировать для Интернета на С++? И где можна достать инфу по созданию таких страниц?
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #1 : 21-12-2006 12:02 » |
|
Что то вопрос не понятен.
Ты хочешь писать на С++ WEB-страницы?
|
|
|
Записан
|
|
|
|
nikedeforest
|
|
« Ответ #2 : 21-12-2006 12:22 » |
|
Он хочет писать на С\С++ как на Perl или РНР. TiNik, посмотри на www.firststeps.ru
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
TiNik Nikolay
Участник
Offline
|
|
« Ответ #3 : 21-12-2006 12:43 » |
|
Да,как сказал nikedeforest как на Perl или РНР! Просто мне очень прёт С++ потому и хочу научится делать многое!!! Если хочешь знать язык умей ним пользуваться ва всю!!!
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #4 : 21-12-2006 13:10 » |
|
TiNik, Проблема С++ в том , что не везде серверы поддерживают работу cgi программ. А так это обычная консольная программа, просто поддерживающая определенный интерфейс обшения с серверными программами. Но в любом случае тебе также придется изучать HTML, JavaScript, CSS и т.д.
|
|
« Последнее редактирование: 21-12-2006 13:15 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Антон (LogRus)
|
|
« Ответ #5 : 21-12-2006 13:17 » |
|
по большому счету весь интерфейс это потоки stdin/stdout + переменые окружения программа получает запрос через stdin + переменные окружения а в stdout выдаёт html код кажется так если не ошибаюсь
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #6 : 21-12-2006 13:25 » |
|
Если хочешь знать язык умей ним пользуваться ва всю!!! Пригодится для коллекции афоризмов.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
nikedeforest
|
|
« Ответ #7 : 21-12-2006 13:44 » |
|
У меня до практики не дошло, но теоритического ознакомления хватило, чтобы понять, что каждому свое. И что С/С++ там (в ВЕБ) как зайцу стоп-сигнал, иначе бы РНР и ПЕРЛ не пользовались бы таким там успехом. Может С++ и пригодится в случае мощной работы с БД и прочими вещами не связанными с выводом юзверу. Это мое имхо.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 21-12-2006 14:34 » |
|
TiNik, в порядке эксперимента можно все, а практически - это не удобно. БЫстрее и удобнее разрабатывать web-программы на предназначенных для этого языках.
В первую очередь, должен быть хороший инструментарий для обработки строк - в web идет, в основном, текстовый обмен. Простая система работы с данными, построения и обработки сложных структур. Возможности STL уступают простоте и надежности PHP или Perl. Автоматический контроль используемой памяти (утечки памяти - потенциальная возможность блокирования работы программы или всего сервера). Кроссплатформенность (С++ от этого далек).
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nop
Гость
|
|
« Ответ #9 : 25-12-2006 23:51 » |
|
Привет всем!!!:) Мне очень интересно как мона программировать для Интернета на С++?
Если сервер IIS, использовать ISAPI extensions, - это dll для обработки запросов (производительность намного выше CGI, хотя при написании требуют особой аккуратности). Либо ISAPI filters - так реализован ASP, ASP.NET.
|
|
|
Записан
|
|
|
|
Chaa
|
|
« Ответ #10 : 27-12-2006 10:34 » |
|
Про ISAPI и IIS. В Visual Studio 2003/2005 есть такой набор компонентов - ATL Server. Там есть очень много полезных для веб-программирования классов. В частности: шаблоны страниц, кэширование, сессии, пулы соединений с базами данных, работа с SMTP, SOAP и т.п. Почти php/perl , правда на порядок сложнее и только под Windows.
|
|
|
Записан
|
|
|
|
Alexmoon
Гость
|
|
« Ответ #11 : 27-12-2006 14:29 » |
|
В первую очередь, должен быть хороший инструментарий для обработки строк - в web идет, в основном, текстовый обмен. Простая система работы с данными, построения и обработки сложных структур. Возможности STL уступают простоте и надежности PHP или Perl. Автоматический контроль используемой памяти (утечки памяти - потенциальная возможность блокирования работы программы или всего сервера). Кроссплатформенность (С++ от этого далек)
Я бы уточнил подобные высказывания. 1. Что значит С++ от этого далек? Существует стандарт языка. Под какой платформой нет компилятора под С++? 2. Разница лишь в механизмах операционной системы, если использовать ее Program Interface, поскольку язык оперирует лишь абстрактными концепциями. Но и это на сегодняшний день решаемо при помощи навесных бибилиотек и макроопределений. Есть всего лишь несколько стандартов, которые легко разводятся препроцессором. 3. Разница лишь в том, что добавляется работа над заголовками. 4. Автоматический контроль используемой памяти - как мы любим эту фразу. Тогда ждем систему автоматического написания программ. 5. Простая система работы с данными, построения и обработки сложных структур. Возможности STL уступают простоте и надежности PHP или Perl - Здесь очень многое зависит от рук. То что в PHP весь синтаксис заточен под простоту работы с данными, ну тогда уж давайте вспомним, что при этом теряется гибкость. Возможности STL не уступают, а лишь не дают той типобезопасности, которую предоставляет PHP и Perl, но зато качественно ухудшают "качество" мозгов. Кому обидно, я уточняю, что абстрактно. Зато гибкость ее шаблонов никогда не перебьет своей никакой скриптовый язык. И еще раз повторюсь. Если мы говорим об отсутствии кроссплатформенности, то давайте говорить не о языке, а о том, что STL не абстрагирует многих системных механизмов, которые тоже очень ограничены в PHP поскольку очень узкая специализация, но зато человеку написание CGI модуля хоть раз даст полное представление о том, что стоит за кулисами этого текстового обмена.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 27-12-2006 16:55 » |
|
Alexmoon, хотелось бы чего-нибудь сказать, но грамматика в твоем тексте хромает и не все понятно. Поправь, если тебе не сложно.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #13 : 27-12-2006 20:07 » |
|
Главная разница в скорости разработки. То что в PHP весь синтаксис заточен под простоту работы с данными, ну тогда уж давайте вспомним, что при этом теряется гибкость. Возможности STL не уступают, а лишь не дают той типобезопасности, которую предоставляет PHP и Perl, но зато качественно ухудшают "качество" мозгов. Кому обидно, я уточняю, что абстрактно. Зато гибкость ее шаблонов никогда не перебьет своей никакой скриптовый язык. Здесь ничего не понял. Какие-то типобезопасности в слаботипизированных языках, какие-то гибкости шаблонов, каковые, к слову, вообще не нужны в слаботипизированных языках.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Chaa
|
|
« Ответ #14 : 28-12-2006 03:44 » |
|
Если немного обобщить сказанное выше: PHP/Perl: пишем быстро, работает медленно C++: пишем медленно, работает быстро
Но на самом деле все сложнее. Чтобы веб-приложение на C++ действительно работало быстро, если это не чисто вычислительная задача, а используются базы данных, нужно писать модуль для веб сервера (ISAPI для IIS, для Apache свои модули).
У CGI есть и свои преимущества - например не страшны утечки памяти, есть недостатки - создание нового процесса, межпроцессное взаимодействие для обмена данными, всегда новое подключение к БД (из-за процесса авторизации, в котором во всех современных БД используются различные криптоалгоритмы, ресурсоемкое действие).
Добиться кросплатформенности реально только в пределах одного веб-сервера. Если хотим чтобы работало в Windows/Unix - пишем модуль для Apache.
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #15 : 28-12-2006 05:48 » |
|
PHP/Perl: пишем быстро, работает медленно C++: пишем медленно, работает быстро А... фанат скорости... Чтобы веб-приложение на C++ действительно работало быстро, если это не чисто вычислительная задача, а используются базы данных Вот как раз, если используются БД, то скорость уже мало зависит от языка программирования, и более зависит от скорости взаимодействия с БД. есть недостатки - создание нового процесса, межпроцессное взаимодействие для обмена данными Добиться кросплатформенности реально только в пределах одного веб-сервера. Если хотим чтобы работало в Windows/Unix - пишем модуль для Apache. Ага, как же, особенно, если учесть, что стоимость создания процесса в Windows и UNIX несколько различается. К слову, для PHP есть модуль для Apache - пользоваться уже готовым чаще всего экономически выгодно .
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Chaa
|
|
« Ответ #16 : 28-12-2006 06:22 » |
|
Сам много пишу на PHP Но появилась как-то задача: русская морфология. Основная проблема была в том, что словари занимают по несколько мегабайт, и грузятся потом по несколько секунд. Пришлось написать на C расширение к PHP, которое использует словари в уже готовом бинарном виде с помощью mmap, чтобы не расходовать память зря. Ага, как же, особенно, если учесть, что стоимость создания процесса в Windows и UNIX несколько различается.
Кроме создания процесса есть масса других вещей, которые CGI делает при каждом запросе, а модуль веб-сервера делает только один раз при старте. Тот же PHP в виде модуля Apache работает значительно быстрее своего CGI варианта. А вообще писать на C++ веб-приложения тяжело. Я писал как-то одно приложение (на ATL Server, под IIS 6), но там использовалось очень много специфичных для Windows технологий, и была важна скорость. TiNik, писать веб-приложения на C++ могу порекомендовать только в образовательных целях. Попробуйте, узнаете много нового
|
|
|
Записан
|
|
|
|
TiNik Nikolay
Участник
Offline
|
|
« Ответ #17 : 28-12-2006 09:09 » |
|
Мне хочется, но ещё нужно найти литературу, в каторой написано использование С для веб-программирования? Мне просто сильно стало интересно из-за того что увидел файлик с разширением *.shtml, а в файлике находиться язык С...!В VisualC++ 6.0 есть создание HTML страниц значит как-то можна всётаки использовать язык для Веб-Программирования!!!И всётаки для общего обогощения можна и попробовать!!! И как сказал Chaa узнаю много нового!!!
Просьба к всем! Где можна достать литературу на примерах и использование языка?
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #18 : 28-12-2006 09:46 » |
|
TiNik, файлу можно задать любое расширение - это ни о чем не говорит. Обычно расширение shtml применяют для скриптовых языков, но это не правило и его обработка зависит только от настроек web-сервера. А переменовать файл с исходниками C++ могли: по ошибке, по незнанию, с целью дезинформации, просто так.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Chaa
|
|
« Ответ #19 : 28-12-2006 09:53 » |
|
|
|
|
Записан
|
|
|
|
|
TiNik Nikolay
Участник
Offline
|
|
« Ответ #21 : 28-12-2006 10:26 » |
|
http://www.cetis.ru/library/cgi/Здесь я посмотрел! Мне б что-то с обьяснением!!!Что для чего,как почему?Подробное обьяснение!!!Я ж не проф...а все-волищь начинающий!!!
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #22 : 28-12-2006 10:41 » |
|
Я ж не проф...а все-волищь начинающий!!! Не лучше ли в таком случае заняться изучением C вообще, и не трогать для начала Web?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
TiNik Nikolay
Участник
Offline
|
|
« Ответ #23 : 28-12-2006 12:06 » |
|
Меня не поняли!!! Я жудко люблю язык программирования С++!!! Но и есть большое желание программировать для Web-а!!! И спрашиваю не для того чтоб взять себе на ус, что есть такая...фишка и типа можна программировать и некогда этип не воспользоваться по назначению!!! Я знаю основы программирования на С++ не идельано но знаю!!! Но я не знаю как можна воспользоваться С++-ом для Web-программирования если можна почему бы и не пользоваться этим!? Я хочу знать и стремится! Вот моя цель Веб и С++, больше мне ничего не нужно...
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #24 : 28-12-2006 12:59 » |
|
Меня не поняли!!! Я жудко люблю язык программирования С++!!! Но и есть большое желание программировать для Web-а!!! И спрашиваю не для того чтоб взять себе на ус, что есть такая...фишка и типа можна программировать и некогда этип не воспользоваться по назначению!!! Я знаю основы программирования на С++ не идельано но знаю!!! Но я не знаю как можна воспользоваться С++-ом для Web-программирования если можна почему бы и не пользоваться этим!? Я хочу знать и стремится! Вот моя цель Веб и С++, больше мне ничего не нужно...
Незнаю, TiNik помоему ты не вту сторону шагаешь семи мильными шагами, это все заведет тебя в тупик. Тебе нужен пример простой программы которая бы работала как CGI скрипт, так вот она: #include <stdio.h>
int main(void) { printf("<html><body>Hello world!!!</body></html>"); return 0; } Только, что ты с ней будешь делать. Бесплатные хостеры не дают поддержки простого PHP и баз данных, не говоря уже об CGI скриптах. А так как ты спрашиваешь о таких вещах, значит у тебя нет сайта на платном хостинге. Да и платные хостеры разрешают только максимум PHP а Perl не все поддерживают. Ну и если ты найдешь хостера который разместит твой бинарник, так его надо еще собрать именно для той системы в которой он будет выполняться ( *BSD, UNIX, Linux) а сюда еще добавь совместимость версий библиотек (все платформы работающие как Web-сервера в Инете собранны довольно давно и не очень то обнавляються. Как говориться: работает и не трогай). Выход один, устанавливать свой сервер, для свойх бинарников. Короче тупиковый вариант. Ты лучше для развличения напиши маленький Web-сервер для статических страниц, вот это тебе будет действительно интересно для тебя.
|
|
|
Записан
|
|
|
|
TiNik Nikolay
Участник
Offline
|
|
« Ответ #25 : 28-12-2006 13:45 » |
|
Ты лучше для развличения напиши маленький Web-сервер для статических страниц, вот это тебе будет действительно интересно для тебя.
А можна поподробней?! Я не всё понял!
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #26 : 28-12-2006 13:48 » |
|
TiNik, Это для начало надо взять в зубы учебник по принципам работы интернета и сокетам. И начать его читать.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #27 : 28-12-2006 16:43 » |
|
TiNik, по сокетам - загляни в нашу библиотеку: https://club.shelek.ru/view.phpПо стандартам web - на www.w3c.org, но там все по-английски. В общем, все правильно - начти с теории, а желание программировать попредержи, иначе время и силы потратишь, а толку будет ноль.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #28 : 28-12-2006 18:15 » |
|
Serg79, малость не так: #include <stdio.h> int main() { printf("Content-Type: text/html\n\n"); printf("<html><body>Hello world!!!</body></html>"); return 0; } В противном случае ответ не будет соответствовать протоколу HTTP. Всякий ответ CGI должен начинаться со строки "Content-Type" и одной пустой после неё.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #29 : 28-12-2006 19:20 » |
|
dimka, кстати, по стандарту, в HTTP для перевода строк используется пара \r\n...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|