Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Реализация WEB-сервера (HTTP) |
Автор: execoma 11.10.2010, 18:25 |
Здравствуйте, уважаемые разработчики. У меня есть задача реализовать систему компьютерного тестирования учащихся. Для проведения тестирования есть два варианта: 1. программа сервер <-> программа тестирования (клиент) 2. программа сервер <-> браузер Вариант 1 достаточно легко решается сокетами, но данный способ не удобен в плане эксплуатации. Задача стоит именно так, чтобы организовать взаимодействие программа сервер <-> браузер, где учащиеся подключаются через браузеры к серверу, который и требуется разработать. Страницы которые нужно передавать серверу являются обычными веб-страницами html + css + графика. Нужно чтобы при подключении через браузер, выдавалась страница index.html из некого каталога, например, C:\temp_connection_2\index.html. При этом нужно чтобы подгружались браузером все связанные с этой страницей файлы (стили, графика, js-скрипты и т.д.). С помощью сокетов я могу передавать браузеру текст, но что касается привязанных файлов то тут я испытываю сложности, т.к. это упирается в протокол HTTP. Я хочу разобраться как мне сделать такой веб-сервер. Я знаю что есть компоненты TServerSocket, TTcpServer, TidTCPServer. Но я никогда не с одними из них не работал и информации в сети скудно на эту тему (что касается использования этих компонентов для создания web-серверов для браузеров). Кто-нибудь сталкивался с подобными задачами? Что-нибудь можете посоветовать? |
Автор: borisbn 12.10.2010, 09:28 |
Писать свой web-сервер на Си++, а тем более на Builder'е, IMHO даже хуже, чем изобретать велосипед. Лучше всего использовать готовый сервер, например http://tomcat.apache.org/ или http://www.iis.net/ и писать свою задачу на html+css+js с использованием "интернет-языка" типа php |
Автор: TIT 12.10.2010, 12:50 | ||
Как сказал Борис выше, изобретать велосипед, даже если это возможно на Билдере, смысла не имеет. Си очень хороший язык, но не заточен он под веб-технологии. А вам, с вашей задачей нужны именно веб-технологии. Если вам необходимо реализовать простую форму для тестирования, посмотрите в сторону форм от Docs Google.com. На их основе вы можете создать форму с вопросами, вариантами ответов и т. д. и собирать все данные от тестируемых в удобной таблице .xls, которую потом можно обрабатывать как вам надо. Если же необходим автономный вариант системы тестирования, то посмотрите в сторону связки web-server (тут можно долго холиварить, я советую lighttpd, Борис -- Апачей, это на ваш выбор), базы данных для хранения вопросов и ответов (тут тоже можно долго холиварить, я советую postgresql, Борис же посоветует mysql или oracle ![]() Писать собственный веб-сервер, который принимает и отдаёт текстовую информацию и не более того смысла нет. Писать backend для приёма данных формы, записи в БД и последующей обработки лучше, конечно на php, но можно извратиться и на Си написать в формате cgi (но вы проклянёте всё на свете во время деплоинга). В заключении. Если решите пойти по пути наименьшего сопротивления, то вам нужно будет: 1. Создать статичный .html файл с формой тестирования, в которой будет форма, контрольки и сабмит. 2. Всё это безобразие будет отдаваться скрипту-обработчику. 3. В качестве веб-сервера поставьте lighttpd, который примет форму в виде POST-запроса и отдаст её скрипту на .php 4. Скрипт на .php проверит и положит все данные из POST'а в базу данных mysql или postgresql и сообщит обратно пользователю, что всё прошло хорошо. Если у вас появятся вопросы по связке web-server/xSQL/php, то во избежании оффтопа, можете задать любой вопрос мне в почту [email protected] p. s. to Boris: Будь проклят тот, кто придумал алгоритм прикручивания php к iis'е. Добавлено через 5 минут и 42 секунды
Если человек решил написать большой проект, в котором, допустим, админка будет через-вебморду, тогда да, имеет смысл веб-сервер вставить в программу. Но в данном случае человеку нужна простая форма для тестирования. Форма из пяти вопросов с вариантами ответов и таблица с результатами. И почему-то мне кажется, что изучить, а главное, написать свой полноценно-работающий веб-сервер -- задача не на два часа. |
Автор: CPlus 12.10.2010, 20:53 | ||
IntraWEB + 2 часа времени. Достаточно просто попробывать. |
Автор: execoma 12.10.2010, 21:12 |
Всем спасибо за советы ![]() Portable wAMP (Apache, MySQL, PHP): http://blog.x-code.name/2008/04/15/9/ Выкину оттуда всякую фигню и попробую это использовать. Почему апатч? Совершенно бесплатный и по данным из wiki к апатчу очень много всяких плагинов, айда что-нибудь когда-нибудь и пригодиться, например, шифровать свои файлики php, чтобы юзеры там не ковырялись. |
Автор: oldcode 15.10.2010, 15:15 | ||
К стати, о копирайтах. Это не
|
Автор: borisbn 15.10.2010, 15:16 |
oldcode, знаю, исполнение Кортнева мне больше нравится, чем песня из мной тоже ![]() |