Главная страница
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
Время: 2.573 c
1-1081878711
wall7
2004-04-13 21:51
2004.05.02
ActionList и MessageBox


1-1081936998
Aks
2004-04-14 14:03
2004.05.02
Текст инет-странички


6-1078637445
Scorp2
2004-03-07 08:30
2004.05.02
Как узнать есть ли соединение с интернетом?


1-1082025096
Ivolg
2004-04-15 14:31
2004.05.02
Папка


3-1081422620
Zn
2004-04-08 15:10
2004.05.02
Глюки с кодовой страницей - кто виноват?