На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

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

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> INDY TCP-Server: Command Handlers
    Как задать комманду с какими-либо параметрами и откуда содержимое этих параметров вытягивать ?
    Сообщение отредактировано: burzum80 -
      Цитата burzum80,5.02.04, 08:19
      Как задать комманду с какими-либо параметрами и откуда содержимое этих параметров вытягивать ?

      Господа крутые программеры снизойдите пожалуйста до ответа чайнику :blink:
        V smisle parametri? Kak ya ponial ti hochesh peredavat serveru kommandi, i podcomandi dlia realizovanih toboy f-ciy? Toga peredavay serveru komandu a podkomandu otdeliay znakom # naprimer, i togda pri poluchenii ee serverom razbey ee po znaku, i obrabotay pervuu polovinu kak komandu a vtoruu kak parametr. Takim naprimer sposobom ya polzovalsi chtobi zadat noviy port computeru, ili otpravit opredelennuu stroku kak message i t.d. (kolvo parametrov mojet bit luboe)

        for i:=1 to length(receivecommand) do
        begin
        var_char:=receivecommand[i];
        if var_char='#' then
        par:=''
        else
        par:=par+var_char;

        end;

        lichno ya voobshe massiv iz strok polzoval (dumayu parametrov 10 tebe bi hvatilo!).
          Цитата grogger,6.02.04, 12:02
          V smisle parametri? Kak ya ponial ti hochesh peredavat serveru kommandi, i podcomandi dlia realizovanih toboy f-ciy? Toga peredavay serveru komandu a podkomandu otdeliay znakom # naprimer, i togda pri poluchenii ee serverom razbey ee po znaku, i obrabotay pervuu polovinu kak komandu a vtoruu kak parametr. Takim naprimer sposobom ya polzovalsi chtobi zadat noviy port computeru, ili otpravit opredelennuu stroku kak message i t.d. (kolvo parametrov mojet bit luboe)

          for i:=1 to length(receivecommand) do
          begin
          var_char:=receivecommand[i];
          if var_char='#' then
          par:=''
          else
          par:=par+var_char;

          end;

          lichno ya voobshe massiv iz strok polzoval (dumayu parametrov 10 tebe bi hvatilo!).

          Я работаю в 7-ой Делфи. Там есть компоненты INDY. Свой сервер я строю на них. Если юзать CommandHandlers, то на каждую команду серверу можно написать отдельный обработчик. Причём команда от параметра отделяется знаком #32 (пробел). Самый простой вариант - написать несколько вариантов команда+параметр, но это не будет работать если в качестве параметра нужно указать, скажем, число. Вот поэтому я и спрашиваю как имменно с использованием INDY определить какой именно праметр был указан после команды ?
            В событиях сервера на OnNoCommandHandler я повесил процедуру n_CH:

            procedure TForm1.n_CH(ASender: TIdTCPServer; const AData: String;
            AThread: TIdPeerThread);
            begin
            ShowMessage(AData);
            end;

            В AData содержится строка текста, которая не относится к существующим CommandHandlers. Дальше можно действовать по примеру grogger`a. Пока других вариантов не вижу.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0.0715 ]   [ 16 queries used ]   [ Generated: 23.10.26, 23:01 GMT ]