Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 22:14   #1
ddc
Новичок
Джуниор
 
Регистрация: 02.04.2010
Сообщений: 2
Вопрос отправка файла через сокеты-по чястям! (дэлфи)

всем привет!
отправка файла происходит так(взял из книги фленова):
Код:
procedure Tform1.SendFile(path: string);
var
  buf:ansistring;
begin
try
  fstream:=TFileStream.Create(path, fmOpenRead);
  buf:='File:'+IntToStr(fstream.Size) + #0;
  fstream.Position:= 0;
  clientsocket1.Socket.SendBuf(buf[1],Length(buf));
  clientsocket1.Socket.SendStream(fstream);
finally
end;
проблема в том что нельзя контролировать процесс отправки(функция отмены,прогрессбар).
подумал что можно отправлять не стрим-ом, а кусочками в цикле.правильное это решение и как реализовать?

upd:
удалось додуматся до этого:
Код:
procedure TForm2.sendfile(path: string);
var
 fs: TFileStream;
 br: tbytes;
 ss:ansistrinгь
begin
      setlength(br,1400);
      fs:=TFileStream.Create(path, fmOpenRead);
      ss:='Size:'+IntToStr(fs.Size) + #0;
      serversocket1.Socket.Connections[0].SendBuf(ss[1],Length(ss));
      fs.Seek(0,sofrombeginning);
   try
  while fs.Position<fs.Size do begin
      progressbar1.Position:=round(fs.Position/(fs.Size/100));
     fs.Read(br,1400);
     serversocket1.Socket.Connections[0].SendBuf(br[0],Length(br));
     fs.Seek(1400,sofromcurrent);
   end; 
   finally
   end;

end;
но полученный файл( картинка ) больше исходного на 130 байт! и не хочет ничем открыватся.

Последний раз редактировалось ddc; 03.04.2010 в 18:57.
ddc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Послать/принять динамический Record через сокеты VaBank Работа с сетью в Delphi 10 30.07.2015 09:14
progressbar и отправка файла через ServerSocket D_E_N Работа с сетью в Delphi 2 15.02.2011 15:37
передачи файлов через сокеты CHITER Работа с сетью в Delphi 5 09.07.2010 21:55
Переданный файл через сокеты не открывается Sanprof Работа с сетью в Delphi 2 23.02.2010 15:07
Не работает отправка файла через сокет SARGE Работа с сетью в Delphi 0 29.01.2009 13:29