Вниз
Скачать: 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.02 c
3-1081249669
SNAK3
2004-04-06 15:07
2004.05.02
ADO и числа с плавающей точкой


3-1081333332
Ascana_
2004-04-07 14:22
2004.05.02
Как выбранную запись сделать первой?


14-1081315094
Vint
2004-04-07 09:18
2004.05.02
сегодня праздник


1-1082035946
siriusP
2004-04-15 17:32
2004.05.02
Масштабирование Canvas при печати.


6-1078830973
S@shka
2004-03-09 14:16
2004.05.02
Передача буфера 8к по сетке




   Наверх