Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TIDTelnetServer [D7, Win2k]


Страницы:   1 2

alt7 ©   (2003-08-13 11:35:00) 

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

То есть, я к примеру пишу ему LAST (в клиенте), а он мне передает последние данные?


Reindeer Moss Eater   (2003-08-13 15:18:00) [21]

begin
cCommand:=AThread.Connection.ReadLn;

end;


alt7   (2003-08-13 15:10:00) [22]

Гм, странная ситуевина получается: если я нажму ченить от клиента, тогда строки идут с сервера, иначе нет, то есть обработка застряет на первом куске... можно это как-то обойти?

Первый кусок:
if AThread.Connection.CurrentReadBuffer <> "" then
begin
gl_frcl := gl_frcl + AThread.Connection.CurrentReadBuffer;
if pos("ATAT",gl_frcl) <> 0 then
begin
Writeln("LAST granted");
gl_frcl := "";
AThread.Connection.InputBuffer.Clear;
with AThread.Connection do
begin
WriteLn("LT"+" "+arrS_last2[1]);
WriteLn("LT"+" "+arrS_last2[2]);
WriteLn("LT"+" "+arrS_last2[3]);
WriteLn("LT"+" "+arrS_last2[4]);
WriteLn("LT"+" "+arrS_last2[5]);
WriteLn("LT"+" "+arrS_last2[6]);
WriteLn("LT"+" "+arrS_last2[7]);
WriteLn("LT"+" "+arrS_last2[8]);
end;
end;
end;

Второй кусок, отправление ДРУГИХ данных клиенту <skipped>


Reindeer Moss Eater   (2003-08-13 12:15:00) [23]

Если есть CommandHandlers, то их OnCommand + OnNoCommandHandler;
Если нет, то OnExecute


alt7   (2003-08-13 12:12:00) [24]

procedure IdTelnetSrvConnect(AThread: TIdPeerThread);
procedure IdTelnetSrvDisconnect(AThread: TIdPeerThread);
procedure IdTelnetSrvException(AThread: TIdPeerThread; AException: Exception);
procedure IdTelnetSrvExecute(AThread: TIdPeerThread);
procedure IdTelnetSrvAuthentication(AThread: TIdPeerThread;
const AUsername, APassword: String; var AAuthenticated: Boolean);

Вот такие процедуры есть у меня.
В последних двух я отсылаю данные клиенту. Штука в том, что клиент подключается и постоянно получает данные, то есть НИКАКИХ СТРОК он серверу не отсылает (имя и пароль не считаются)...
а теперь надо, чтоб клиент мог отправить команду LAST. В какой обработчик события надо поставить обработку эту.. и примерно как сделать-то?


Reindeer Moss Eater   (2003-08-13 12:01:00) [25]

Напиши реализацию команд и это будет.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо