INDY TCP-Server: Command Handlers
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.37] |
|
|
Соблюдайте общие правила форума
MSDN Library
FAQ раздела
Поиск по разделу
Как правильно задавать вопросы
INDY TCP-Server: Command Handlers
|
Сообщ.
#1
,
|
|
|
|
Как задать комманду с какими-либо параметрами и откуда содержимое этих параметров вытягивать ?
|
|
Сообщ.
#2
,
|
|
|
|
Цитата burzum80,5.02.04, 08:19 Как задать комманду с какими-либо параметрами и откуда содержимое этих параметров вытягивать ? Господа крутые программеры снизойдите пожалуйста до ответа чайнику |
|
Сообщ.
#3
,
|
|
|
|
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!). |
|
Сообщ.
#4
,
|
|
|
|
Цитата 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 определить какой именно праметр был указан после команды ? |
|
Сообщ.
#5
,
|
|
|
|
В событиях сервера на OnNoCommandHandler я повесил процедуру n_CH:
procedure TForm1.n_CH(ASender: TIdTCPServer; const AData: String; AThread: TIdPeerThread); begin ShowMessage(AData); end; В AData содержится строка текста, которая не относится к существующим CommandHandlers. Дальше можно действовать по примеру grogger`a. Пока других вариантов не вижу. |