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

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



Память: 0.45 MB
Время: 0.022 c
14-1081677449
Qwart
2004-04-11 13:57
2004.05.02
Voxel


4-1078141590
tytus
2004-03-01 14:46
2004.05.02
Ярлык и значек


1-1082105019
тихий вовочка
2004-04-16 12:43
2004.05.02
Глупый вопрос об обработке сообщений


11-1061807748
electric
2003-08-25 14:35
2004.05.02
Как в KOL отправить письмо?


1-1081770200
__oleg
2004-04-12 15:43
2004.05.02
Координаты окна




   Наверх