Главная страница
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.48 MB
Время: 0.036 c
6-1151785308
ZLOFENIX
2006-07-02 00:21
2006.11.19
использование сокс


1-1160375047
Stanislav
2006-10-09 10:24
2006.11.19
Медленная отрисовка Wmf


1-1159884508
guav
2006-10-03 18:08
2006.11.19
TReader/TWriter для TPersistent из/в XML


6-1151488496
Chaser
2006-06-28 13:54
2006.11.19
Аналог ClientSocket1Write для Indy idTCPClient


2-1162382972
Dalex1984
2006-11-01 15:09
2006.11.19
Ба-а-льшая трабла