Ben web sayfalarını dolaşan ve dolaştığı sayfadan ilk 100 byte nı kaydeden bir program yapmaya çalışıyorum. Ama ilk 100 byte işini bir türlü halledemedim kullandığım kod aşağıda. Kod ile 100 byte lık kısmını koparıp alabiliyorum ama hFile := InternetOpenURL(hInet,PChar(url),nil,0,0,0); sorgusunu yaptığım sırada sayfanın tamamını hafızaya çekiyor. Bu da boşyere hız kaybı ve kotayı dolduryor.
Not:(Sayfa yapsında olduğu için Range header yapısını kabul etmiyor)
Kod: Tümünü seç
function DownloadFile(
const url: string;
const destinationFileName: string): boolean;
var
hInet: HINTERNET;
hFile: HINTERNET;
localFile: File;
buffer: array[1..1024] of byte;
bytesRead: DWORD;
begin
result := False;
hInet := InternetOpen(PChar(application.title),
INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
hFile := InternetOpenURL(hInet,PChar(url),nil,0,0,0);
if Assigned(hFile) then
begin
AssignFile(localFile,destinationFileName);
Rewrite(localFile,1);
repeat
InternetReadFile(hFile,@buffer,SizeOf(buffer),bytesRead);
BlockWrite(localFile,buffer,bytesRead);
until bytesRead = 0;
CloseFile(localFile);
result := true;
InternetCloseHandle(hFile);
end;
InternetCloseHandle(hInet);
end;

Ama dosya gelmeye devam ediyor


Bu Tcp Segment of reassem.. ları nasıl durdurabilirim. Veya bu kod haricinde hangi apilerle çalışmamlazım