Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизWinAPI + скачивание файла по http (просто) Найти похожие ветки
← →
Dima (2008-03-13 19:37) [0]Здравствуйте.
Подскажите пожалуйста, в чем моя ошибка?
Представленный ниже код компилируется, но работает не правильно (файл по http не скачивается).program AK;
{$APPTYPE CONSOLE}
uses Windows, SysUtils, Messages, WinSock;
var
F: TextFile;
s: TSocket;
data: TWSAData;
Addr: TSockAddr;
Recived: Integer;
Buff: array [0..1023] of Char;
HTTPRequest,HTTPResponse,Name,IP,Path: string;
begin
IP:= "192.168.0.2";
Name:= "192.168.0.2";
Path:= "/files/file.exe";
WSAStartup($101, data);
s:=socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
Addr.sin_family:=AF_Inet;
Addr.sin_port:=htons(80);
Addr.sin_addr.S_addr:=inet_addr(PAnsiChar(IP));
if (connect(s,Addr,SizeOf(TSockAddr)) <> SOCKET_ERROR) then
begin
HTTPRequest:="GET "+Path+" HTTP/1.1"+#13#10+"Host: "+Name+#13#10+"Connection: Close"+#13#10#13#10;
send(s, HTTPRequest[1], length(HTTPRequest),0);
HTTPResponse:= "";
Recived:= 1;
while Recived <> 0 do
begin
Recived:= recv(s, Buff, Length(Buff), 0);
HTTPResponse:= HTTPResponse + Copy (Buff,0,Recived);
end;
closesocket(s);
AssignFile(F, "file.exe");
Rewrite(F);
Writeln(F, HTTPResponse);
CloseFile(F);
end;
WSACleanup();
end.
Спасибо.
С уважением,
Дима
← →
Slym © (2008-03-14 04:25) [1]все работает... ты не отрезаешь заголовок у ответа аля "HTTP/1.1 200 OK" и т.д.
← →
Slym © (2008-03-14 04:30) [2]Slym © (14.03.08 4:25) [1]
отрезать нужно начало до #13#10#13#10 включительноRecived:=pos(#13#10#13#10,HTTPResponse);
if Recived<>0 then
HTTPResponse:=copy(HTTPResponse,Recived+4,MaxInt);
← →
Dian (2008-10-08 03:27) [3]Через строки будет работать только с текстовыми файлами
← →
Palladin © (2008-10-08 07:45) [4]Через строки (String) будет работать, но не нужно пользоваться TextFile, и понимать разницу между бинарными данными и текстовыми
← →
Slym © (2008-10-08 10:43) [5]Некрофилы! ветке 7 месяцев :)
← →
Palladin © (2008-10-08 10:47) [6]мля... даже не посмотрел... это все он, некто Dian...
← →
brother © (2008-10-08 10:50) [7]> мля... даже не посмотрел... это все он, некто Dian...
вспомнилось: в 2 часа ночи... откуда? из морга! О_О
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.065 c