Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.023 c
9-1132413694
4ECHOK
2005-11-19 18:21
2006.08.06
Равномерное расположение N точек в ограниченной области.


15-1152715483
Ломброзо
2006-07-12 18:44
2006.08.06
Новый mail.ru а-ля Outlook web access


2-1153123735
Leonid
2006-07-17 12:08
2006.08.06
Нужен компонент для отсылки e-mail


1-1150972456
Старик
2006-06-22 14:34
2006.08.06
Различные варианты выгрузки приложения из памяти


2-1153455791
PSPF2003
2006-07-21 08:23
2006.08.06
TSearchRec в Инете





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский