Конференция "Прочее" » Посоветуйте что-нибудь по поводу сетевого странспорта
 
  • Умище (17.05.08 21:06) [20]
    >Тимохов

    А почему не захотел использовать обычный Apache?
    С ним как раз просто делается всё.
  • Тимохов (17.05.08 21:30) [21]

    > Умище   (17.05.08 21:06) [20]
    > >ТимоховА почему не захотел использовать обычный Apache?
    > С ним как раз просто делается всё.


    Да мне все равно :) Просто нужно написать сервер авторизации за завтра :о
    Я люблю апач (у меня под ним много чего крутится). Я как-то пытался под него на дельфи писать (фунционал авторизации именно на дельфи). Вроде не разобрался.

    Не, напишу, конечно и на своем существующем сервере. Но хочу, чтобы он "косил" под HTTP, чтобы порты не нужно было людям открывать, если из под ISA сидят.

    Мне вообще ICS вчера понравился - весь пример OverbyteIcsWebServ изучил. Как таковая многопоточность мне завтра не нужна. Вопрос с многопоточностью возник потому, что я подумал, а не написать ли мне весь свой ВЕБ сервер на ICS? Все равно я хоститься буду только у себя ну или на своем сервере у провайдера. Поэтому мне не нужно PHP и прочие распространенные технологии - я всегда могу поставить win и крутить на нем мой веб сервер на ICS.
  • _mirage (17.05.08 21:45) [22]
    >[19] Anatoly Podgoretsky © (2008-05-17 20:57:00)
    >У подавляющего большинстсва OpenSource или Freeware продуктов c
    >документацией полный швах

    и зачастую она и не нужна. обычно есть примеры и списки рассылок/форумы.

    ---
    Understanding is not required. Only obedience.
  • Тимохов (17.05.08 22:14) [23]

    > _mirage   (17.05.08 21:45) [22]
    > >[19] Anatoly Podgoretsky © (2008-05-17 20:57:00)>У подавляющего
    > большинстсва OpenSource или Freeware продуктов c>документацией
    > полный швахи зачастую она и не нужна. обычно есть примеры
    > и списки рассылок/форумы.

    сказал бы что-нить по теме, кетмар
  • _mirage (17.05.08 22:18) [24]
    >[23] Тимохов (2008-05-17 22:14:00)
    я в трепологии или где? что я тебе по теме скажу, если я всё время пользовался самописными модулями, а сейчас и вообще второй год винды в глаза не видел?

    ---
    Understanding is not required. Only obedience.
  • Тимохов (17.05.08 22:23) [25]

    > mirage   (17.05.08 22:18) [24]
    > >[23] Тимохов (2008-05-17 22:14:00)я в трепологии или где?
    >  что я тебе по теме скажу, если я всё время пользовался
    > самописными модулями, а сейчас и вообще второй год винды
    > в глаза не виде

    ты в прочее :)

    да, было дело. видел твой сервер.

    в общем на завтра мне полученных знаний и опыта хватит. а там, видно будет - пойму как делать многопоточные сервера на ics.

    всем спасибо.
  • _mirage (17.05.08 22:24) [26]
    >[25] Тимохов (2008-05-17 22:23:00)
    >да, было дело. видел твой сервер.
    ну, это далеко не лучший образец моего кода. скорее, набор хаков и лапши.

    ---
    Understanding is not required. Only obedience.
  • Тимохов (17.05.08 23:52) [27]
    НЕмного оффтоп, но все же спрошу.

    Я вот тут задумал все же написать свой веб сервер на дельфи.
    Вопрос от новичка - надо ли RFC2616 (HTTP protocol) читать или есть какие-то более легкие пути все понять?

    :)
  • Тимохов (18.05.08 00:12) [28]
    В общем разобрался (мож кому полезно будет, если в историю не успеет уйти).

    Для того, чтобы сделать многопоточный сервер из 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,
           '',           { Default Status '200 OK'         }
           '',           { Default Content-Type: text/html }
           'Pragma: no-cache' + #13#10 +  { No client caching please           }
           'Expires: -1'      + #13#10,   { I said: no caching !               }
           '<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" никто не продаст? :)
  • DVM © (18.05.08 00:15) [29]

    > Тимохов   (17.05.08 23:52) [27]
    > НЕмного оффтоп, но все же спрошу.
    >
    > Я вот тут задумал все же написать свой веб сервер на дельфи.
    >  

    Я вот натыкался на весьма неплохо написанный WEB сервер от создателей TheBat: TinyWEB. Он использует потоки. Написан понятно. Можешь с подражания ему начать. http://www.ritlabs.com/en/products/tinyweb/
  • DVM © (18.05.08 00:16) [30]
    В догонку к [29]: само собой он на Delphi написан.
  • Тимохов (18.05.08 00:29) [31]

    > DVM ©   (18.05.08 00:15) [29]

    угу, спасибо, посмотрю.
    ---------
    есть в вебе что-то такое гадостное.
    я вот тут обнаружил, что страничку, писанную мной в 2000 году для моей работы, до сих пор корректно воспринимают все браузеры, хотя в ней есть реальные колапсы с DIVами и TABLEами (нет закрывающий, у таблицы ряды не всегда верно проставелены).

    я вот привык, что если в одном бите лажанул - то получи гранату в виде AV. а тут - сплошное додумывание за меня :) ладно, это лирика.

    ВОПРОС. Знает ли кто-то хороший фреймворк для разработки веб приложений под дельфи? Может RAILS перетащили на DELPHI?
  • DVM © (18.05.08 00:38) [32]

    > Тимохов   (18.05.08 00:29) [31]


    > я вот привык, что если в одном бите лажанул - то получи
    > гранату в виде AV

    Тогда пиши свой веб-сервер на Си (без плюсов). После Delphi на нем так "удобно и легко" програмировать работу со строками. Просто сказка. :) Шаг влево, шаг вправо и получаем полнейший бардак в работе программы и диковинные глюки :)
  • Тимохов (18.05.08 00:53) [33]

    > Тогда пиши свой веб-сервер на Си (без плюсов). После Delphi
    > на нем так "удобно и легко" програмировать работу со строками.
    >  Просто сказка. :) Шаг влево, шаг вправо и получаем полнейший
    > бардак в работе программы и диковинные глюки :)


    да не хочу я свое писать. хочу оболочку, в которой я бы смог развенуться :)

    лан, ICS мой выбор (пока). о результатах доложу :)
  • _mirage (18.05.08 17:12) [34]
    >[32] DVM © (2008-05-18 00:38:00)
    вполне нормально. один раз сделал библиотеку для динамических строк — и забыл навсегда. это ж макроассемблер: взял и допилил.

    ---
    Understanding is not required. Only obedience.
  • Anatoly Podgoretsky © (18.05.08 17:42) [35]
    > _mirage  (18.05.2008 17:12:34)  [34]

    Не понимают они мощи макроассемблера, не понимают.
  • _mirage (18.05.08 17:44) [36]
    >[35] Anatoly Podgoretsky © (2008-05-18 17:42:00)
    вот-вот. си и FOSS — наше всё. в FOSS принцип «не хватает — допиши», и в си то же самое. в FOSS принцип «фигню дал — фигню получил», и в си то же самое.
    так-то.

    ---
    Understanding is not required. Only obedience.
 
Конференция "Прочее" » Посоветуйте что-нибудь по поводу сетевого странспорта
Есть новые Нет новых   [134435   +9][b:0][p:0.001]