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


Автор: Rey 21.6.2006, 12:20
Народ помогите плиз, как переслать файл по TCP с помощью TIdCmdTCPClient и TIdCmdTCPServer...  smile 

PS: Да кстати может ктото работал с компонентом TidLogEvent так и не смог понять как его заставить работать...  smile  

Автор: Snowy 21.6.2006, 12:35
Поиск!
http://forum.vingrad.ru/index.php?act=Search&CODE=show&searchid=2b8ed34d17965cdeffad8a13f6dd277b&search_in=posts&result_type=topics&flag=search&debug=&highlite=%EF%E5%F0%E5%E4%E0%F2%FC+and+%F4%E0%E9%EB&skipped= 

Автор: Rey 22.6.2006, 19:31
Поиск это конечно хорошая вешь, но того что мне надо там я не нашел... smile 
Все примеры которые я нашел реализовать так и не получилось...
Если не сложно может ктонить привисти конкретный пример или дать конкретную ссылку...

PS: извеняюсь если офтопик... 

Автор: Snowy 22.6.2006, 19:47
Версия Delphi и Indy? 

Автор: Rey 22.6.2006, 20:01
Delphi 2006, Indy 10....
Большенство примеров к сожалению описывают 9-ю версию... =( 

Автор: Rey 23.6.2006, 12:14
Что никто не работал с indy10? 

Автор: _hunter 23.6.2006, 12:53
в чем конкретно проблема? -- сокеты переносятяс без особых проблем... 

Автор: Rey 23.6.2006, 13:19
Собственно код такой:

Сервер:
Код

procedure TfmIndexed.itServerCommandHandlers3Command(ASender: TIdCommand);
var
  SendFile: TFileStream;
begin
  SendFile := TFileStream.Create( 'D:\Охота.bmp', fmOpenRead );
  ASender.Context.Connection.Socket.WriteBufferOpen;
  ASender.Context.Connection.Socket.Write( SendFile );
  ASender.Context.Connection.Socket.WriteBufferClose;
end;

При получении команды он должен посылать файл..

Клиент:
Код

  itClient.Socket.Write( 'GetResult' );

  f := TFileStream.Create('Resive.bmp', fmCreate);
  f.Seek(0, soFromBeginning);

  itClient.Socket.ReadStream( f );

  f.Free;


Но в итоге получается, при попытке получить файл все виснет...  smile  smile  

Автор: Snowy 23.6.2006, 13:30
Ну так а размер файла кто будет передавать?
Откуда принимающая сторона знает, сколько байт ты послал?
Вот и принимает, пока не надоест...
О компьютер вещь терпеливая... 

Автор: _hunter 23.6.2006, 13:30
странный ты пример нашел...
http://forum.vingrad.ru/index.php?showtopic=42410
http://forum.vingrad.ru/index.php?showtopic=48311 

Автор: Rey 23.6.2006, 17:10
Snowy, Ну насчет терпеливости компьютера я догадывался... Особенно когда он повиснет...  smile 
А про размер файла я както не подумал, это моя первая проба програмирования для сети...  smile 

_hunter, Спасибо за ссылки, вродебы нашел что искал, теперь буду разбираться...  smile 
Только не совсем понял к чему была вторая ссылка... 

Еще раз спасибо, наконецто нормальный ответ...  smile  

Автор: _hunter 23.6.2006, 17:20
на всякий пожарный... 

Автор: Rey 23.6.2006, 17:45
Понятно, спасибо, все разобрался...  smile  

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