-
>Тимохов
А почему не захотел использовать обычный Apache? С ним как раз просто делается всё.
-
> Умище (17.05.08 21:06) [20] > >ТимоховА почему не захотел использовать обычный Apache? > С ним как раз просто делается всё.
Да мне все равно :) Просто нужно написать сервер авторизации за завтра :о Я люблю апач (у меня под ним много чего крутится). Я как-то пытался под него на дельфи писать (фунционал авторизации именно на дельфи). Вроде не разобрался.
Не, напишу, конечно и на своем существующем сервере. Но хочу, чтобы он "косил" под HTTP, чтобы порты не нужно было людям открывать, если из под ISA сидят.
Мне вообще ICS вчера понравился - весь пример OverbyteIcsWebServ изучил. Как таковая многопоточность мне завтра не нужна. Вопрос с многопоточностью возник потому, что я подумал, а не написать ли мне весь свой ВЕБ сервер на ICS? Все равно я хоститься буду только у себя ну или на своем сервере у провайдера. Поэтому мне не нужно PHP и прочие распространенные технологии - я всегда могу поставить win и крутить на нем мой веб сервер на ICS.
-
>[19] Anatoly Podgoretsky © (2008-05-17 20:57:00) >У подавляющего большинстсва OpenSource или Freeware продуктов c >документацией полный швах и зачастую она и не нужна. обычно есть примеры и списки рассылок/форумы.
--- Understanding is not required. Only obedience.
-
> _mirage (17.05.08 21:45) [22] > >[19] Anatoly Podgoretsky © (2008-05-17 20:57:00)>У подавляющего > большинстсва OpenSource или Freeware продуктов c>документацией > полный швахи зачастую она и не нужна. обычно есть примеры > и списки рассылок/форумы.
сказал бы что-нить по теме, кетмар
-
>[23] Тимохов (2008-05-17 22:14:00) я в трепологии или где? что я тебе по теме скажу, если я всё время пользовался самописными модулями, а сейчас и вообще второй год винды в глаза не видел?
--- Understanding is not required. Only obedience.
-
> mirage (17.05.08 22:18) [24] > >[23] Тимохов (2008-05-17 22:14:00)я в трепологии или где? > что я тебе по теме скажу, если я всё время пользовался > самописными модулями, а сейчас и вообще второй год винды > в глаза не виде
ты в прочее :)
да, было дело. видел твой сервер.
в общем на завтра мне полученных знаний и опыта хватит. а там, видно будет - пойму как делать многопоточные сервера на ics.
всем спасибо.
-
>[25] Тимохов (2008-05-17 22:23:00) >да, было дело. видел твой сервер. ну, это далеко не лучший образец моего кода. скорее, набор хаков и лапши.
--- Understanding is not required. Only obedience.
-
НЕмного оффтоп, но все же спрошу.
Я вот тут задумал все же написать свой веб сервер на дельфи. Вопрос от новичка - надо ли RFC2616 (HTTP protocol) читать или есть какие-то более легкие пути все понять?
:)
-
В общем разобрался (мож кому полезно будет, если в историю не успеет уйти). Для того, чтобы сделать многопоточный сервер из THttpServer нужно: В евоном событии OnGetDocument: a) Сказать, что ответ мы сформируем сами посредством Flags := hgWillSendMySelf; б) Создать поток, передав ему Client. в) После выполнения долгой операции в Execute'е потока использовать один из методов AnswerXXX класса THttpConnection (это класс объекта Client, который был упомянут выше). В общем что-то типа такого (я тут имитирую 10 сек задержку в расчетах и вывожу увеличенную с каждым запросом на 1 глоб. переменную).
type
TMyThread = class(TThread)
public var Cl : TMyHttpConnection;
procedure Execute(); override;
end;
var
GlogalCounter: integer = 123;
procedure TMyThread.Execute();
var
Dummy: THttpGetFlag;
begin
Sleep(10000);
Inc(GlogalCounter);
Cl.AnswerString(Dummy,
'',
'',
'Pragma: no-cache' + #13#10 +
'Expires: -1' + #13#10,
'<HTML>' +
'<BODY>' +
inttostr(GlogalCounter)+
'</BODY>' +
'</HTML>');
end;
procedure TWebServForm.HttpServer1GetDocument(Sender: TObject;
ClientCnx: TMyHttpConnection; var Flags: THttpGetFlag);
begin
with TMyThread.Create(True) do
begin
FreeOnTerminate := True;
Cl := ClientCnx;
Resume();
end;
Flags := hgWillSendMySelf;
end;
В общем работает. -------------- Книгу Оланда "Программирование в сетях Windows" никто не продаст? :)
-
> Тимохов (17.05.08 23:52) [27] > НЕмного оффтоп, но все же спрошу. > > Я вот тут задумал все же написать свой веб сервер на дельфи. >
Я вот натыкался на весьма неплохо написанный WEB сервер от создателей TheBat: TinyWEB. Он использует потоки. Написан понятно. Можешь с подражания ему начать. http://www.ritlabs.com/en/products/tinyweb/
-
В догонку к [29]: само собой он на Delphi написан.
-
> DVM © (18.05.08 00:15) [29]
угу, спасибо, посмотрю. --------- есть в вебе что-то такое гадостное. я вот тут обнаружил, что страничку, писанную мной в 2000 году для моей работы, до сих пор корректно воспринимают все браузеры, хотя в ней есть реальные колапсы с DIVами и TABLEами (нет закрывающий, у таблицы ряды не всегда верно проставелены).
я вот привык, что если в одном бите лажанул - то получи гранату в виде AV. а тут - сплошное додумывание за меня :) ладно, это лирика.
ВОПРОС. Знает ли кто-то хороший фреймворк для разработки веб приложений под дельфи? Может RAILS перетащили на DELPHI?
-
> Тимохов (18.05.08 00:29) [31]
> я вот привык, что если в одном бите лажанул - то получи > гранату в виде AV
Тогда пиши свой веб-сервер на Си (без плюсов). После Delphi на нем так "удобно и легко" програмировать работу со строками. Просто сказка. :) Шаг влево, шаг вправо и получаем полнейший бардак в работе программы и диковинные глюки :)
-
> Тогда пиши свой веб-сервер на Си (без плюсов). После Delphi > на нем так "удобно и легко" програмировать работу со строками. > Просто сказка. :) Шаг влево, шаг вправо и получаем полнейший > бардак в работе программы и диковинные глюки :)
да не хочу я свое писать. хочу оболочку, в которой я бы смог развенуться :)
лан, ICS мой выбор (пока). о результатах доложу :)
-
>[32] DVM © (2008-05-18 00:38:00) вполне нормально. один раз сделал библиотеку для динамических строк — и забыл навсегда. это ж макроассемблер: взял и допилил.
--- Understanding is not required. Only obedience.
-
> _mirage (18.05.2008 17:12:34) [34]
Не понимают они мощи макроассемблера, не понимают.
-
>[35] Anatoly Podgoretsky © (2008-05-18 17:42:00) вот-вот. си и FOSS — наше всё. в FOSS принцип «не хватает — допиши», и в си то же самое. в FOSS принцип «фигню дал — фигню получил», и в си то же самое. так-то.
--- Understanding is not required. Only obedience.
|