Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Передача файла с помощью TTCPServer, TTCPClient...   Найти похожие ветки 

 
3APA3A ©   (2004-03-03 22:13) [0]

файлы, маскимальный размер ~10Мб, локалка на 100мб..

Я делал так - при надатиин на кнопку писал
var F:TFileStream;
    S:DWORD;  
  Client.RemoteHost:="...";
  Client.RemotePort:="...";
  F:=TFileStream.Create("c:\....",fmOpenRead);
  if Client.Connect then
    begin
      s:=DWORD(F.Size);
      Client.SendBuf(S,4);
      Client.SendStream(F);
      Client.Disconnect;  
    end
 
 а в обработчике OnAccept сервера
   M:TMemoryStream;
   S:DWORD;
   begin
     M:=TMemoryStream.Create;
     ClientSocket.ReceiveBuff(S,4);
     M.SetSize(S);
     ClientSocket.ReceiveBuff(M.Memory^,S);
     M.SaveToFile("c:\....");
     M.Free;
   end;

Писал по памяти, может что-то и упустил, но у меня почему то создается файл всегда 4Кб, хотя размер передается правильно... проверял... В чем я ошибся?


 
Slym ©   (2004-03-04 04:19) [1]

Попробуй применить OnGetThread...
И в дельфи есть примеры!


 
Verg ©   (2004-03-04 06:32) [2]

ReceiveBuf возврщает реально принятое количество байт, которое может быть меньше, чем то что ты указал во вотором параметре.
А ты этого не учитываешь вообще.
Интересно еще вот что - как ты это проверил, что размер передается верно?



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-1081958058
DarkSet
2004-04-14 19:54
2004.05.02
Защита файлов от доступа


6-1078395276
pai
2004-03-04 13:14
2004.05.02
Indy, IdTCPClient.writebuffer


1-1081838568
Bond
2004-04-13 10:42
2004.05.02
Напечатать конверт A5


14-1081564484
TButton
2004-04-10 06:34
2004.05.02
Perl.Help(Me);


14-1081264403
Mim1
2004-04-06 19:13
2004.05.02
Как закрыть обсуджение