Здравствуйте.
Подскажите пожалуйста, в чем моя ошибка?
Представленный ниже код компилируется, но работает не правильно (файл по http не скачивается).
program AK;
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.
Спасибо.
С уважением,
Дима