Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.94 c
15-1161964546
Palladin
2006-10-27 19:55
2006.11.19
юридический вопрос


2-1162419772
jTommy
2006-11-02 01:22
2006.11.19
Получть из пути с короткими именами путь с длинными именами


3-1158651489
term1t
2006-09-19 11:38
2006.11.19
Comand is missing required clause


15-1162401978
Ne-Ld
2006-11-01 20:26
2006.11.19
Тонкий намек. Рекомендую к прочтению.


5-1142938872
AlexeyT
2006-03-21 14:01
2006.11.19
Тормозит отрисовка на Bitmap-е




   Наверх