Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработчик команд в TIdFTPServer 
:(
    Опции темы
SerGreY
Дата 14.4.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 18.1.2004

Репутация: нет
Всего: нет



Пишу обработчик команды:

Код

procedure TfrmDial.IdFTPServer1TIdCommandHandler0Command(
  ASender: TIdCommand);
var S:TMemoryStream;
begin
  S:=TMemoryStream.Create;
  ASender.Thread.Connection.ReadStream(S);
  ...
end;


Как только идет любое обращение к объекту ASender.Thread.Connection, программа останавливается, на выполнении этой команды, т.е. не выдает ошибку, не вылетает, не зависает.
Также пробовал использовать ReadBuffer(Buffer, sizeof(Buffer)), эффект тот же.

Я передаю данные командой Put(Stream, StreamLength)
Обработчик пишу для команды "STOU".

Как можно прочитать передаваемый поток?

Это сообщение отредактировал(а) Girder - 14.4.2006, 14:52
PM MAIL   Вверх
Snowy
Дата 14.4.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Просто брось на форму антифриз.
PM MAIL   Вверх
SerGreY
Дата 14.4.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 18.1.2004

Репутация: нет
Всего: нет



Цитата(Snowy @ 14.4.2006, 15:03)
Просто брось на форму антифриз.

Он уже есть на форме и включен.

Дело явно не антифризе. Тут именно что-то ни так при чтении.

Мне нужен доступ к рабочему потоку сервера. В TIdCommand.Thread точно хранится то, что нужно?

Это сообщение отредактировал(а) SerGreY - 14.4.2006, 15:21
PM MAIL   Вверх
Snowy
Дата 14.4.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(SerGreY @ 14.4.2006, 14:45 Найти цитируемый пост)
procedure TfrmDial.IdFTPServer1TIdCommandHandler0Command(
  ASender: TIdCommand);
var S:TMemoryStream;
begin
  S:=TMemoryStream.Create;
  ASender.Thread.Connection.ReadStream(S);

Так ты что-то пытаешься читать из коннекшена. Причем неизвестной длины.
Вот и вешается.
А за тебя все уже давно прочитано и лежит тут: ASender.Params
PM MAIL   Вверх
SerGreY
Дата 14.4.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 18.1.2004

Репутация: нет
Всего: нет



Я пробовал читать и с определенной длиной.

var i:integer;
S:TMemoryStream;
ASender.Thread.Connection.ReadStream(S, sizeof(i), false);

Все то же.


Params содержит строки.
А что будет в Params, если я передам какую-то record, а не строку?
Добавлено @ 16:29
Проще говоря, как передать произвольный набор данных (какой-то объект) через TIdFTP - TIdFTPServer ?
PM MAIL   Вверх
Snowy
Дата 14.4.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Тогда тебе нужен не обработчик комманд, а OnExecute.
Обработчик комманд только для текста.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.