Вниз
Скачать: CL | DM;

Бьюсь с отправлением файла по соксу   Найти похожие ветки 

 
Коля   (2006-03-26 11:39) [0]

Ну ведь правильно все написал - а выскакиевает AccessViolation. Помогите ошибку найти.


procedure TAppForm.pute(fil:string);
var
 PHH: TPacketHeaderHolder;
 PH: TPacketHeader;
 Stm:TStream;
 a:file of byte;
 buf:array[0..1024]of byte;
 frc:integer;
begin
 Stm := TMemoryStream.Create;
 
 assignfile(a,fil);
 reset(a);
 while not eof(a) do begin
    blockread(a,buf,1024,frc);
    stm.WriteBuffer(buf,1024);
  end;
  closefile(a);

 PHH := TPacketHeaderHolder.Create(ptReply);
   try
     Stm.Position := 0;
     PHH.DataSize := Stm.Size;
     PHH.DataHash := CalcMD5(Stm);
     PH := PHH.PacketHeader;
   finally
     FreeAndNil(PHH);
   end;

 Stm.Position := 0;
 with ClientSocket.Socket do
 begin
   SendBuf(PH, SizeOf(PH));
   SendStream(Stm);
 end;
   FreeAndNil(Stm);
end;


 
Коля   (2006-03-26 11:42) [1]

да, забыл сказать - выскакивает она на последней строчке.


 
Dmitrij_K   (2006-03-26 14:33) [2]

1. TMemoryStream.LoadFromFile()
2. Сокет блокирующий иль нет?


 
Dmitrij_K   (2006-03-26 14:39) [3]

Почитай справку по SendStream, особенно внизу Note:


 
Коля   (2006-03-26 18:39) [4]

Гениально! Спасибо большое!
убрал FreeAndNil(Stm); и все отлично заработало. А сам двое суток голову ломал


 
Dmitrij_K   (2006-03-26 19:23) [5]

У тебя остается проблема освобождения памяти от MemoryStream


 
Коля   (2006-03-26 22:47) [6]


try
   .....
   .....
   Socket.SendStream(Stm);
 except
   FreeAndNil(Stm);
   raise;
 end;


хм, а вот так, вроде, память освобождается



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

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



Память: 0.46 MB
Время: 0.025 c
2-1153074505
alexandrine
2006-07-16 22:28
2006.08.06
Сорри за простой, наверное вопрос...


2-1151678499
mahab
2006-06-30 18:41
2006.08.06
irda


15-1151876608
Dimedrol
2006-07-03 01:43
2006.08.06
HTML: Посмотрите на ошибку - никак не осилю


1-1150978339
Bundeskanzler
2006-06-22 16:12
2006.08.06
Поиск в TListView


2-1153247328
FTPDigger
2006-07-18 22:28
2006.08.06
Не менее 6-ти вопросов по FTP функциям




   Наверх