
27.02.2009, 15:15
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
С нами:
9785147
Репутация:
137
|
|
Вот тут у меня опть проблема
пытаюсь загрузить файл из интернэта по средствам сокетов
Код:
var Site : PChar;
sock : TSocket;
HostEnt : PHostEnt;
WSA : TWSAData;
addr : sockaddr_in;
sendbuff : String;
PostData : String;
f:TextFile;
i:integer;
buf:array[0..255] of char;
begin
if WSAStartup($0101, WSA) <> 0 then
Exit;
sock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
FillChar(addr, SizeOf(sockaddr_in), 0);
addr.sin_family := AF_INET;
addr.sin_port := htons(80);
Site := 'www.google.ru';
HostEnt := gethostbyname(Site);
addr.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
Connect(sock, addr, SizeOf(addr));
sendbuff := '';
sendbuff := 'GET http://www.google.ru/images/nav_logo3.png HTTP/1.0' + #13#10 +
'User-Agent: Opera/9.10 (Windows NT 5.1; U; ru)' + #13#10 +
'Host: www.google.ru' + #13#10 +
'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1' + #13#10 +
'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8' + #13#10 +
'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1' + #13#10 +
'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0' + #13#10 +
'Proxy-Connection: close' + #13#10 +
'Referer: http://www.google.ru/images/nav_logo3.png' + #13#10 +
'Proxy-Connection: close';
send(sock, sendbuff [1], Length(sendbuff), 0);
AssignFile(f, 'logo.png');
Rewrite(f);
repeat
i := recv(sock, buf, length(buf), 0);
writeln(f, buf);
until i <= 0;
CloseFile(f);
CloseSocket(sock);
end;
но в файл добавляется только несколько символов переноса строки и всё, прозреваю что я использую не тот тип данных для записи ответа сервера в файл или вообще не правильно записываю ответ, подскажите как правильно.
|
|
|