Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > idTCPServer


Автор: z-END 10.12.2004, 17:02
Внезнапно напаролся на такую штуку:
Код

procedure TMain.IdTCPServerExecute(AThread: TIdPeerThread);
begin
AThread.Connection.WriteFile('D:\FILE.JPG');
end;

а вот как его получить TCPClient'ом я че-то непонял. (типа TCPClient.ReadFile необнаруженsmile )
Собственно для передачи файлов использовал другие способы, а сервер использовал тока для отправки уведомлений и обмена тех. информацией...
Но если можно было-бы прямо в таком виде отправлять то это очень заманчиво и много бы упростило.

Автор: <Spawn> 10.12.2004, 17:28
Дак обычным ReadBuffer и читай. К примеру, передо отправкой файла посылаешь уведомление о начале отправки, после чего на стороне клиента читаешь все в один буфер, до прихода пакета окончания отправки.

Автор: z-END 10.12.2004, 17:41
<Spawn> если не трудно нарисуй простенький пример, а то чето-както недагоняюsmile

Автор: Akella 4.1.2005, 17:25
мне кажется нужно использовать методы SendBuf b ReceiveBuf или SendTo и ReceiveFrom

Автор: Snowy 5.1.2005, 10:52
WriteFile предназначен для отправки файла в сокет. Но это вовсе не значит, что компонент отвечает за все остальное. Это просто способ сделать SendBuffer, данные для которого брать из файла. Начало и конец файла нужно маркировать ручками, и прием реализовать тоже ручками.
Вобщем WriteFile это всего лишь комбинированный вариант, совмещающий чтение в бефер из файла, а затем отправка этого буфера в сокет. Никакого протокола при этом не осуществляется. Все на совести разработчика.

Автор: Akella 1.2.2006, 09:47
В Indy 10 это уже реализовано по другому и примеры от Indy 9 не подходят smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)