Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Indy и пересылка Stream   Найти похожие ветки 

 
Nostradamus ©   (2006-06-07 03:24) [0]

Есть Сервер с TIdCmdTCPServer и Клиент с TIdCmdTCPClient
По нажатию кнопки на клиенте он отсылает команду серверу в ответ на которую сервер шлёт Stream.

Делал так:
Клиент:

TCPClient.SendCmd("GETFILE");
M := TMemoryStream.Create;
try
TCPClient.IOHandler.ReadStream(M);
 ...
finally
M.Free;
end;
...


Сервер:

procedure TMain.TCPServerCommandHandlers2Command(ASender: TIdCommand);
var
F : TFileStream;
begin
ASender.Reply.NumericCode := 200;
ASender.Reply.Text.Text := "OK, Sending file";
ASender.Disconnect := False;
ASender.SendReply;

F := TFileStream.Create(FileLocation, fmOpenRead);
try
 ASender.Context.Connection.IOHandler.Write(F);
finally
 F.Free;
end;
end;


Происходит следующее:
а) клиент говорит, что неверный Reply Code (TCPClient.SendCmd("GETFILE");)
б) клиент виснет напрочь на TCPClient.SendCmd("GETFILE");

Подскажите пожалуйста, в чём проблема, что я сделал не так.

Если тестировать спомощью Telnet, то всё работатет правильно.

П.С. Раньше я сетями никогда не занимался, так что не судите строго


 
Nostradamus ©   (2006-06-08 00:42) [1]

засунул чтение в клиенте в Thread теперь прога не виснет, но и ничего не читается:

TCPClient.IOHandler.Readable возвращает всегда False
TCPClient.IOHandler.WaitFor - возбуждает исключение "Buffer start position is invalid"

Помогите разобраться, плиз, в чём ошибка?


 
Belorus ©   (2006-07-02 22:04) [2]

Актуально. У мну на ReadStream виснет


 
Дмитрий Белькевич ©   (2006-07-03 04:20) [3]

Не знаю, честно говоря, как индей файло слать, не было необходимости, но поглядел на код - как я понимаю, нужно как минимум ответ забрать. Да и вообще - зачем отвечаешь? Попросил - в ответ поток. Всё. Вообще с индей примеров большая куча была, пересылка там должна быть.


 
Дмитрий Белькевич ©   (2006-07-03 04:22) [4]

Чуть выше, кстати, болтается ссылка на перевод книги "indy inside" от г-на Погорецкого (за что ему отдельная благодарность), посмотри там. Книга прочитана, и забыта, как обычно ;)



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
1-1159998160
Doma
2006-10-05 01:42
2006.11.19
Как получить PTypeData на тип по названию?


15-1161919258
SlymRO
2006-10-27 07:20
2006.11.19
Опять RO?! За что?


2-1162197366
Piero
2006-10-30 11:36
2006.11.19
TDBLookUpComboBox


2-1162464612
dmdel
2006-11-02 13:50
2006.11.19
вертикальные заголовки в StringGride


2-1162620441
Shopot
2006-11-04 09:07
2006.11.19
Функции Delphi.