Блог

Web server delphi

Вывод очевиден. К тому же за месяц будет освоен только базовый синтаксис и крохотное подмножество стандартной библиотеки. Впереди месяцы набивания шишек, усвоения best practices и изучения стандартной библиотеки. В случае генерации картинки на сервере придется ее перестраивать заново с другими параметрами. А если передать сырые данные на клиент, то там можно будет перестраивать ее как угодно без лишних запросов.

Нотариально заверенный скриншот — это что-то из области интернет-мемов. По-хорошему, разбор полетов начинается с поднятия логов на устройстве, интерфейс тут совершенно не при.

Если у вас там винтажная атмосфера, и пользователи заходят с устройств, у которых процессор слабее современной кофеварки, то, наверное, нужно делать как вы говорите. А еще важно понимать, что такие требования очень редкие. Поэтому, преподносить их как норму, и советовать всем делать точно так же, не стоит.

NET — http: Использование только старых технологий не является обязательным условием для запуска ракет в космос. Изначально в статье говорилось "а давайте напишем интернет-магазин на Delphi", на что комментаторы справедливо заметили, что для этой задачи есть технологии получше.

Потом пришли вы, и ответили, что на этих технологиях в космос не улететь. Справедливо, никто с этим и не спорит. Но это не значит, нужно писать интернет-магазин на технологиях для встраиваемой электроники.

Coding A Simple HTTP Web Server Delphi (beginners)

Выйдет прекрасный сайт с потрясающей надежностью передачи данных, но пользователи этого не заметят, потому что уже давно уйдут к другому продавцу, который запилил сайт намного быстрее на более подходящем стеке. В общем, спорить можно бесконечно, только смысла в этом нет, потому что задачи обсуждаются совсем разные. Даже там где пофигу на дизайн, все равно нужно хотя бы немного об этом думать, чтобы не получилось. Например редактор документа или обозреватель файловой системы сервера.

Наличие такого состояния порождает ряд вопросов:. Ext JS это фреймворк для создания сложных приложений, на уровне толстых клиентов, но работающих в браузере. Делать на его базе веб-сайты весьма неэффективно.

Вы берёте инструмент, для ваших целей не подходящий в принципе, и пытаетесь его изнасиловать. Не наезда ради, а конструктивной критики для: В английском есть такая поговорка: Конкретно в данном случае ошибка в неразделении серверной и клиентской стороны. На чём сделан сервер, браузеру совершенно всё равно: А вот с клиентской стороны у вас по факту два приложения, и для одного из них Ext JS подходит примерно так же, как карьерный самосвал для гонок в картинге. Отсюда и вся боль и страдания. Если этот проект всё ещё в разработке, рекомендую заменить Ext JS на что-нибудь попроще для публичного веб-сайта, жизнь станет гораздо проще и солнечнее.

Это я вам как разработчик Ext JS говорю. Войдитепожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Если смотреть на картину издалека, то вырисовываются 3 сценария использования библиотеки: Наиболее благоприятный, для которого она в целом и создавалась, когда описанная сильная, радужная сторона uniGUI проявляет себя в полной мере — перенос полный или частичный — неважно настольных приложений в веб, что возможно проделать быстро, привычным способом и с высоким качеством только в случаях, когда поставляемые с библиотекой компоненты сразу обеспечивают требуемый функционал — к примеру, фильтрацию и сортировку по столбцам таблицы.

Очень похож на первый и в какой-то мере вытекает из него, с тем лишь отличием, что штатный набор компонентов не покрывает все необходимые по ТЗ возможности; если снова взять для примера таблицу, то таким требованием может стать многоуровневая группировка строк по произвольным столбцам. Если удастся найти сторонние решения с нужными возможностями, то сценарий сводится к первому, а если нет, то потребуется самостоятельная доработка, что уже весьма нетривиально.

Последний сценарий может показаться странным и даже чужеродным для тех, кто применял на практике в основном первый, — речь об отказе от всей богатой палитры визуальных компонентов и разработке клиентской части веб-приложения исключительно с использованием родной для неё триады — HTML, CSS и JavaScript.

Данная статья покажет, в каких случаях подобное допустимо, а также продемонстрирует способ реализовать задуманное. Постановка проблемы Рассмотрим две ситуации. Вероятность того, что макету будет соответствовать одна из поставляемых с библиотекой тем оформления, почти нулевая; шанс того, что с помощью штатных настроек через Инспектор объектов и некоторых приёмов через CSS удастся подкорректировать внешний вид компонентов до требуемого, уже выше, но тоже мал.

Если же оказывается, что дизайн, ко всему прочему, содержит различные анимации, то пиши пропало — uniGUI данную тему обходит стороной и помочь ничем не сможет. Здесь наилучшим выходом имеется в виду для конечного пользователя видится ручная вёрстка по макету, плюс которой также в максимальной производительности, ибо часто даже несколько десятков графических объектов uniGUI не только создаются с ощутимой задержкой, но и отрисовываются тоже не мгновенно, а если счёт доходит до сотни и выше, то почти гарантировано неприемлемое замедление.

Само-собой, когда Delphi-программист владеет вёрсткой, то и эту часть работы может выполнить он, а если нет, то её вполне реально передать другому человеку, потому что, как будет видно ниже, эти структурные блоки сайта — клиентская триада и серверный код — весьма независимы и могут разрабатываться по отдельности. Также возможна вторая, более редкая ситуация, в которой описываемый далее подход аналогично применим: Статика Итак, имея на руках свёрстанный макет, необходимо определиться со способом его отображения, что не имеет такого уж очевидного решения.

Поиск контейнера Попробуем начать с малого и исследовать минимальный, пустой проект, воспользовавшись для его создания мастером: А у нас тут можно получить грант на тестовый период Яндекс. Читают. Поделиться публикацией. Максиплэйс Москва Возможна удаленная работа. Completo Москва. Автор интенсивных курсов по HTML.

web hosting price

United Traders Возможна удаленная работа. Original Works Самара. Все вакансии. DrPass 7 мая в Назывался IntraWeb, поддерживался каким-то сторонним разработчиком. Он сейчас есть, или ушёл? SergeyPyankov 7 мая в Дополню ответ выше. С Delphi поставляются различные редакции IntraWeb, обладающие разными возможностями: С Professional — Personal-редакция, в которой наиболее неприятное ограничение — 5 одновременных сессий. С Enterprise и выше — Standard с не такими критичными запретами.

ElectroGuard 7 мая в Плюс в нём из коробки есть стендэлон сервер. Так же тремя дефайнами один и тот же код можно выполнить в виде standalone exe, isapi, или windows service.

Опять же — в унигуе есть полноценный пак компонент для работы на мобильных устройствах, чего насколько я знаю нет в IntraWeb. Стендэлон сервер, насколько я помню, и в IntraWeb есть, точнее, юзался тот, что в Indy. Но, помнится, стабильность IntraWeb меня огорчала. Как с этим в Унигуе дела обстоят? Могу сказать, что за всё время с сервером унигуя он тоже на Indy проблем не было ни разу. Были некоторые мелкие вопросы с самими компонентами, но разобрались с ними, частично сами, частично саппорт помог.

Саппорт на самом деле отличный. Можете сами на их форуме убедится, всё открыто. AkshinM 7 мая в Не читал, но осуждаю, как обычно. В реальных задачах очень удобно, на самом деле. Довольно сложное гуёвое приложение где-то около 50ти форм было за месяц целиком перенесено мною в веб и отлично там работает. Компоненты вылизанные, работать удобно. Поддержка автора компонент отличная. Работает вся делфёвая инфраструктура.

В реальной жизни это очень удобно. GarfieldX 7 мая в Потому и получается, что Delphi — это уже сложно. Измеряется не в строках кода программиста, а во времени, которое он потратит на решение задачи.

Когда-то давно можно было без всяких оговорок утверждать, что если вам нужно десктопное приложение, тем более работающее с СУБД или интегрированное с чем-либо, то максимальную продуктивность вам даст как раз Delphi. Сейчас этого. Где-то в середине х я стал замечать, что конкурентные преимущества Delphi появились и на других платформах.

А потом ещё хуже пошло. И вышло так, что продуктивность разработки перешла к другим продуктам. Причем никаких объективных причин для этого как бы и нет, всего лишь нежелание у вендора развивать продукт. Всяко проще купить очередную свистоперделку у сторонней конторы, и добавить её в дистрибутив, нежели развивать стандартную библиотеку. Верно, для всякой задачи сейчас можно подобрать свой оптимальный инструмент. В идеале, конечно, продуктивность важный параметр.

Но ведь идеала не бывает. Если уже привязан к Delphi, то логично будет, пускай, даже тратить время на освоение чего то нового, но не плодить лишнего. В конечном итоге продуктивность определяется не только инструментом, но и специалистом его использующим.

Создание Web-приложений в среде Delphi

Поэтому однозначно заявлять, что Delphi устарел, уж точно. На нём можно тянуть легаси-проекты, которые ещё, может быть, проживут не одно десятилетие. Но начинать что-то новое лично я бы не. Да, это уже ближе к реальности. В силу своей немодности новых адептов просто нет, все предпочитают хвататься за что-нибудь новенькое.

Спрашивается, зачем он им? А потому что модное новьё… печально. RPG18 7 мая в Это был пример. Точка отсчета относительна. В свое время, когда только появился C именно такие требования и встречались в вакансиях. Работодатель еще даже не знал зачем ему это, но просил. Вплоть до абсурда с физически не существующими сроками опыта.

Таким образом и задавался тренд, в который вливались большинство новичков. А че, приятно же считать себя умнее. Работодатели идиоты, да? Мало ли чего написано в тех вакансиях? Не надо домыслов и вымыслов.

Как говорится, что написано пером, то не вырубишь топором. А написано было именно про опыт разработки на конкретном языке. И суть этого была в том, что работодатель во всяком случае тот, кто ответственен за найм все-таки идиот, так как пишет абсурдные требования и хочет технологию, пользу которой еще даже не в состоянии оценить. Как следствие неокрепшие умы видят именно эти вакансии, где кругом сплошное новьё, на которое они и ориентируются в итоге.

Соответственно появиться поддержке существующим технологиям и языкам уже существенно сложнее. Это кое что о вас говорит. GarfieldX 7 июня в И это уже говорит кое-что о. Так же как и эмоциональный ответ спустя месяц. Счастливо оставаться со своими домыслами.

Да там же где и обычно. Разработчики, глубоко разбирающиеся в технологии Х — огромная редкость и стоят дорого. Потому все согласные на новичков, да на переучившихся. В конце концов ничего такого сверхуникального в Дельфи. Это не Хаскель — любой программист с опытом освоит. Да в том-то и дело, что не так всё радужно. Любой программист освоит быстро, но далеко не любой захочет на это тратить своё время.

Программисты с опытом ведь не хватаются за любую работу подряд, а тоже выбирают, в каком направлении им развиваться, и что изучать. Delphi им в этом плане сейчас мало что может предложить. Любой программист освоит быстро, но далеко не любой захочет на это тратить своё время Ну вот не надо сказок рассказывать. Что, мол, подавляющее большинство программеров занимаются только тем, что им интересно, а ходит на работу вовсе не за деньгами.

Создание WEB-сервера - Delphi Sources FAQ

Да, лучшие могут выбирать где и над чем работать. Но основная серая масса — работает там, где им платят. Ничего такого сложного и доступного только сверхъчеловекам в Pascal. То же JavaScript и обилие модных фреймворков под него — и то более сумбурно и сложнее для изучения. А если исходить из-того, что использовать следует только самые распространенные технологии, то тогда мы бы сейчас все ПО разрабатывали только с помощью PHP.

DrPass 9 июня в Ну так что дозволено Юпитеру, то не дозволено быку. Если вы предложите кому-то из подавляющего большинства программеров изучить новую перспективную платформу с работой на этой платформе в придачуто конечно же, он вряд ли откажется. Но эта схема совершенно не прокатывает с Delphi. Вакансий немного, спрос потихоньку сокращается, рынок софта большей частью — поддержка систем, обычно написанных под внутренние нужны предприятий очень редко что-то для внешнего энтерпрайзазарплаты ничем выдающимся не блещут, следующая работа будет скорее всего на другой платформе.

Создание Web-приложений в среде Delphi

Разве не так? И какой смысл тогда выкидывать несколько лет жизни на приобретение опыта, который более нигде не пригодится? Только потому, что поленился поискать другую работу? Абсолютно. Но зато есть тонны рутинной библиотечной жвачки с четвертьвековым легаси.

Знаете, это куда сильнее отпугивает, нежели сложности. ElectroGuard 9 июня в В мире веба закладываться на какую-то технологию сложнее в сто крат. И ты уже легаси-программист. Я же профессионально пишу на делфи уже й год. Весьма успешно. Вот — уже и до веба добрался: Как обычно: Вы себе несколько плохо представляете состояние библиотек Delphi. В мире веба закладываться на какую-то технологию сложнее в сто крат Вы ошибаетесь.

В мире веба есть стабильные платформы, которые уже давно заняли свою нишу и развиваются экстенсивно. Вам совсем не обязательно разгребать авгиевы конюшни npm, чтобы быть актуальным веб-разработчиком. Вы можете работать с ASP. Я пришел в мир Delphi в м году. Писал эксперты, высоконагруженную систему клиент-банк и.

Создание WEB-сервера

Последний проект закончил поддерживать в м. Возможно, там за эти три года всё радикально поменялось, и я отстал от жизни. Но мне почему-то кажется, что. И моё мнение про Delphi всё-таки вполне адекватное: И вот это стоит почитать огонь и движение: Я это читал до того, как вы стали профессионально писать на Delphi ; Спольски смотрит со своей колокольни, и не нужно слишком серьезно брать его во внимание.

Delphi на месте не стоит. Многое добавляется от версии к версии.

Создание сайта на Delphi, или Как использовать uniGUI по-минимуму / Хабр

Работа с REST точно появилась, остальным не интересовался. QtRoS 7 мая в Его не за Делфи забанили, а за оффтопик и разжигание флейма. Не будьте как тот одаренный человек, учитесь пользоваться форумами и другими тематическими сообществами.

Нормально всё с Delphi. Развитие идёт, не взирая на то, что его все 20 лет хоронят: Активно лезет в веб. Пользоваться Унигуем на реальных приложениях очень удобно. GarfieldX 8 мая в Интересно, за что минусят. Delphi реально активно развивается и догоняет время. Много всего там прикрутили. Да, не все гладко, но это болячки роста. Главное, что он. А уж компилятор под мобильные платформы — я вообще не понимаю, как его использовать… Основан на LLVM прощай, скорость компиляции!

С интересом послушаю чем же именно он устарел и чем же он стал так уж плох…. QtRoS 8 мая в Если вкратце: Нет поддержки вендоров всякие SonarQube, CheckMarx, PVS Studio и прочие вещи из этого ряда никогда не появятся для Делфи Нет нормальных IDE собственно, выбора нет, есть только RAD Studio, и она объективно устарела, имеет интерфейс из ых, постоянно валится В конце концов в языке нет никакой киллер фичи, в которой бы он превосходил какой-то другой язык и был бы из-за этого ценнен. Свойства и события с апгрейдом переехали в C.

И так далее, по свойству X его превосходит язык Y. А вообще все уже расписали до. Но планируется! Это не наезд на PHP — просто у него такой же низкий порог входа для создания какого-то сайтакакой и у Делфи для создания какого-то оконного приложения.

ElectroGuard 8 мая в Удобно и ничего лишнего. PVS Studio Которое появилось не от хорошей жизни. Для остальных процентов есть свои вполне удобные инструменты FixInsight, например. Наша разработка, к слову. Студия давно уже не в интерфейсе 90х.

Я работаю часто и много XE6. Да, бывает падает. Раз в месяц, иногда реже. Есть активно развивающийся плагин для IDEA: Также он использует GC.

Который далеко не всегда удобен. Плюсы минимально по скорости быстрее, однако возможностей выстрелить себе в ногу на порядок. А каких фич в самом языке не хватает? F0iL 8 мая в Какие вкусности пришли в Шарп за последнее время?

Ну например… habr. Некоторые вещи имеют сомнительную ценность и слишком частное применение. Многое же из перечисленного уже есть в Delphi, подтянули Шарп, молодцы, что сказать: Delphi как-то больше в последнее время над платформами работает: ElectroGuard 11 мая в К слову, пробежало. Ссылки фич по версиям: Честно, разочарован. Ожидал чего то большего и значимого. Менеджер пакетов — Уже есть, в последних версиях. Хотя как то жилось и без. Коллекции — Спокойно можно жить и без. Пишу ныне на Java и особого экстаза при использовании HashMap не испытываю, скорее наоборот.

Многопоточность — Есть, класс TThread. Громоздкий синтаксис — Вы серьезно? Обязательная декларация переменных в начале функции — Это наоборот огроменный плюс, который учит порядку и правильному мышлению, вместо того чтобы гадить созданием переменных посреди кода.

Про поддержку вендоров с их примочками ничего не скажу, но тоже не видел ни одного страдающего делфиста. Но писать качественный софт это никак не мешало.

Сейчас нет ни единого языка с какими то киллер фичами, любая стоящая вещь превращается в некую парадигму и разлетается по всему миру разработки. Со скоростью тоже не все так однозначно. В общем, детский сад какой-то. Ждал чего то более серьезного. Странные вам попадались делфисты, если сравниваете с PHP-шниками.

Delphi продолжает развиваться. Почитайте про линейку XE — там вкусняшки и догоняшки вполне. Похоже вы просто знаете и понимаете слишком мало о Delphi, чтобы его адекватно оценивать. Уровень программиста от средств разработки не зависит, он на чем угодно будет делать конфетку. Та же Java — один большой костыль. Чего только стоила до относительно недавнего момента работа с временем, а ведь многие проекты так и будут сидеть на семерке.

Замечено, общая беда хейтеров. Они остались примерно на уровне 7-го Делфи, которому, уже как бы 15 лет. Новых сред и всей инфраструктуры то и не видели. Обычно это странное какое-то зрелище. Time machine какой-то. Что с ней станется. Для своих применений выше крыши. DrPass 8 мая в Основная проблема Delphi — её цена.

Что толку от её фич, если она стоит 2. С такой ценовой политикой у неё просто нет шанса получить приток новых пользователей. Вы с какой планеты будете?

Марс что ли? И раньше он меньше не стоил. И сейчас он больше не стоит. Ну и вузы имеют огромный дисконт, как и имели. А что такое для бизнеса ну пусть даже тысяча за инструмент? Да ничто. Один раз купили и забыли. Мы на разработку в прошлом году потратили порядка 30 тысяч зелени. И мы то так, мелкая контора.

Опять же, не нравится прайс — есть Лазарус. Бесплатный. На той планете, где он стоил около тысячи, я был лет 10. На нынешней планете, куда я сейчас приземлился, он стоит вот столько: Он постоянно растёт в цене. Очевидно, Эмбаркадеро махнула рукой на расширение рынка, и просто пытается по-максимуму выдоить постоянно сужающийся круг богатых корпоративных клиентов.

Пока они ещё. Вы очень заблуждаетесь. Видя несколько аналогичных по функционалу инструментов, бизнес не купит тот, который дороже, и при этом имеет меньший круг специалистов. Кстати, про этих самых специалистов. Это вторая сторона медали. Чтобы бизнес рассматривал какой-то инструмент, у него должны быть в штате специалисты, которые с ним работали.

А откуда берутся такие специалисты? Правильно, или с предыдущих проектов, или из институтов, или от самостоятельного изучения. А новые при такой ценовой политике вендора не появляются. Примерно зеленых.

Да, незначительно подорожал. Был, когда мы покупали что. Зато мобильный пак включили, раньше был платный. С учетом того, что порог вхождения минимальный, обычно по своему опыту люди за несколько месяцев вполне обучаются. Если, конечно, вообще к программированию пригодны. DrPass 9 мая в Поэтому нет, новых клиентов с такой политикой Delphi приобрести не сможет, по крайней мере, таких, у которых есть хоть капля здравого смысла.

ElectroGuard 9 мая в Я вам ссылку на RAD Studio привёл, это немного другой продукт: Всё верно. Но я же говорил про Delphi: Указанного продукта вполне достаточно для разработки. Любого человека нужно вводить в курс дела. Я не верю в то, что кто-то придёт и сразу сядет делать хоть сколько сложный проект.

Врятли это будет быстрее месяца-двух. Заодно и в Делфае разберется, нет там сложностей, всё просто как пробка, в чем и прелесть среди остального. Всё таки, люди, как правило, берутся на годы. Если где-то человека берут на несколько месяцев — то что-то в такой конторе не. Либо текучка, либо смысла человека брать вообще не было — проще было на аутсорс отдать что мы, к слову, достаточно активно практикуем в том числе Поэтому нет, новых клиентов с такой политикой Delphi приобрести не сможет, по крайней мере, таких, у которых есть хоть капля здравого смысла.

Конечно, хочется что бы инструменты были дешевле, спорить глупо. Но они стоят разумных денег. И инструменты — далеко не единственные расходы при изготовлении ПО. И уж точно это не самые большие расходы. И то расходы один раз лет на 5 по опыту нашей компании, 16 лет. Мы до сих пор на XE6 сидим, и нам его достаточно.

При том, что разработки ведутся очень активно. Опять же — есть возможность покупать обновления, не обязательно покупать каждый раз среду занова. Акции проводятся почти ежегодно.

Мы по акциям два раза из трёх и обновляли. Недавно была акция, по которой можно было обновится с любой версии до последней по цене обновления обычная практика у них — с трёх последних.

Процесс ввода в дело человека, который имеет опыт работы с платформой, выглядит так: Дать почитать техническое задание. Назначить таски. Я не шучу, именно так и. А два-три месяца на изучение новой платформы — это очень дорого. Эти два-три месяца обучения — это значит, продукт будет выпущен на два-три месяца позже. А это уже стоит намного дороже. При этом, как я уже говорил, человека ещё и заинтересовать надо, чтобы он изучал малопопулярную платформу. Вы знаете, я тут с вами вообще никак не соглашусь.

Delphi проста, если нужно заниматься кнопкокидательством на уровне джуниора. Для профессиональной разработки там надо знать очень и очень. Когда-то я писал на Delphi и собственный набор DB-aware компонент, и эксперты для IDE, и много чего другого, поэтому знал её внутри очень хорошо.

Нифига она не простая. Случаи, конечно, всякие бывают. Мы у себя новичков за текущие проблемы не сажаем. Наработки на будущее. Да и новичку, обычно, проще что-то новое полностью сделать, чем разбираться в имеющемся коде. Перейти с Delphi на тот же шарп — опять же — месяц — максимум.

Как и наоборот. Продукты весьма близкие, особенно с учетом того, что один человек их дизайнил изначально. Пример вызова этой функции я приводить не стану, так как ты уже должен знать, как это делается.

На крайний случай у тебя под рукой архив журнала, а в нем лежит полный исходник. Проинициализировав сетевую библиотеку, у нас появляется возможность, использовать абсолютно любые WinSock API функции, а значит, мы можем открыть порт и запустить цикл ожидания новых клиентов. Если ты вдруг решишь написать WEB-сервер с графическим интерфейсом, то тебе обязательно придется выполнять прослушивание в отдельном потоке, иначе твое приложение заснет непробудным сном.

Resume ; end. Начинай его переписывать и краем глаза заглядывай в мои комментарии. В самом начале листинга, я создаю новый сокет, который будет использоваться для прослушивания. Для его создания, я использую функцию socket. В качестве параметров ей требуется передать:. Семейство протоколов. Тип сокета.

Выполнив функцию, нужно обязательно проверить ее результат. У этой структуры 3 поля для заполнения:. Указываем тоже значение, как и для первого параметра функции socket.

Теперь у нас есть заполненная структура и созданный сокет. Для дальнейших действий их нужно связать. Связь устанавливается с помощью функции Bindкоторая принимает всего лишь три параметра:. Если Bind не вернула ошибок, то значит все готово для вызова функции Listen.

После этого, наш сокет перейдет в состояние ожидания новых подключений. В качестве параметров, функция Listen принимает: Поскольку мы создаем WEB-сервер, то изначально подразумевается, что клиентов может быть несколько, причем несколько одновременно. Поэтому чтобы никто не стоял в очереди я запускаю бесконечный цикл, в котором вызывается функция Accept.

Если после выполнения данной функции не возникло ошибок, то значит, новый клиент успешно подключился и для него нужно создать отдельный поток — TClientThread. В этом потоке и будет происходить обработка запросов пользователя и отправка соответствующих документов. Исходный код потока TClientThread приведен в листинге 2, поэтому не засиживайся и начинай его переписывать, а я постараюсь, как можно тщательней его прокомментировать.

Сразу после старта потока TClientThread, я вызываю функцию Recvкоторая позволяет читать данные, прилетевшие на сокет. Из параметров я передаю:. Если она пуста, то значит, клиент не отправил запрос и ничего не остается, как закрыть сокет и прервать выполнения процедуры. Ну а если данные все-таки есть, то их нужно добавить в лог надо же знать, кто к нам подсоединялсяи приступить к анализу запроса. Весь анализ заключается в выдергивании из заголовка стартовой строки и получения из нее пути и имени запрашиваемого документа.

Для вытаскивания этой информации я создал простенькую функцию и назвал ее GetFilePath.

хостинги серверов кс 34

В качестве одного единственного параметра ей требуется передать первую строчку полученного от пользователя запроса именно в ней находится стартовая строка. Получив эту строку, функция начнет ее проверять на предмет наличия метода GET. Если он будет найден, то указанный в нем URI будет вырезан и возвращен в качестве результата. Я не стал приводить в статье код этой функции, так он очень простой и в нем лишь использованы известные каждому Delphi-программисту функция для работы со строками.

Путь запрашиваемого документа у нас есть, теперь остается только получить полный путь, относительно директории определенной в DocumentRoot.

Теперь, когда мы знаем полный путь к документу, нам не составит труда отправить его клиенту. Но перед отправкой обязательно нужно убедиться в существовании требуемого файла.

Ведь вполне возможно, что пользователь просто ошибся, набирая адрес в своей бродилке, и такого документа у нас может и вовсе не. Что в этом случае делать? Нет, отмалчиваться не стоит, иначе клиент подумает, что сайт просто недоступен. Чтобы этого не случилось, достаточно просто оправить страницу, содержащую код ошибки. В данной ситуации это будет ошибка Для определения наличия файла, я использую стандартную функцию FileExists. Если она вернет, тру, то значит все Ok и следует начать отправку запрошенного файла, а если нет, то передать заранее подготовленную страницу с ошибкой Давай взглянем на случай, при котором файл найден, а действия при отсутствия файла аналогичны.

Для передачи файла клиенту, необходимо загрузить этот файл в поток объект типа TFileStream. Объект инициализируется стандартным способом, то есть через метод Create. Из параметров этот метод просит:. Путь к файлу. Тип доступа. Нам нужен файл только для чтения, поэтому я указываю fmOpenRead.

После загрузки файла, нужно приступать к формированию и отправлению ответа для клиента. Вся текстовая часть заголовка отправляется с помощью самописный функции SendStr. В качестве параметров ей нужно передать: В принципе не обязательно объявлять свою функцию для отправки данных.

TObject ; var scs: TstringStream ; begin ss: Create ; cs: ItemIndex ; try Idhttp1. DataString ; finally ss. Free ; end ; memo1. Add s. Get URL ;?

dedicated hosting vs vps

Добавлено через 7 минут Android 4. Button2Click Sender: Button3Click Sender: Add ARequestInfo. Text ; a: Web-сервер на Delphi. MoreAnswers Эксперт.

Опции темы. Реклама - Обратная связь. Наши страницы VkontakteFacebookTwitter Delphi: Регистрация Восстановить пароль.