Форум: "Сети";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизБьюсь с отправлением файла по соксу Найти похожие ветки
← →
Коля (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 вся ветка
Форум: "Сети";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c