Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Загрузка файла по http c++
 
Всем привет! Не знаю, как реализовать следующую схему:
Программа загружает конфигурационный файл по http к себе в память, а не на хард.

P.S. Нормальной реализации не могу найти даже под винду.
P.S.2 Буду особо благодарен за платформенно-независимый способ, если таковой существует.
 
Код
function WSACreateEvent:THandle;stdcall;
external 'ws2_32.dll' name 'WSACreateEvent';

Var
Buf:Array [0..0] of Char;
WSAData:TWSAData;
Socket1Addr:TSockAddrIn;
Socket1:TSocket;
Events:THandle;
Host,HTMLText,HTMLTextTemp,Linc,FileName:String;
LengthReceiveData,I,J:Integer;
ABC:Array [0..25] of String;

procedure ConnectToServer;
Begin
Host:='77.88.21.3';
WSAStartUp(MakeWord(2,0),WSAData);
Socket1:=Socket(AF_Inet,Sock_Stream,IPProto_IP);
Socket1Addr.Sin_Family:=AF_Inet;
Socket1Addr.Sin_Port:=Htons(80);
Socket1Addr.Sin_Addr.S_Addr:=Inet_Addr(Pchar(Host));
Events:=WSACreateEvent;
Connect(Socket1,Socket1Addr, SizeOf(Socket1Addr));
End;

procedure ReadData;
Begin
HTMLText:='';
LengthReceiveData:=Recv(Socket1,Buf,SizeOf(Buf),0);
HTMLText:=HTMLText+Buf;
While LengthReceiveData>0 do begin
For I:=0 to High(Buf) do Buf[I]:=' ';
LengthReceiveData:=Recv(Socket1,Buf,SizeOf(Buf),0);
HTMLText:=HTMLText+Buf;
If LengthReceiveData=0 then begin CloseSocket(Socket1);Exit;End;
End;
CloseSocket(Socket1);
End;

procedure SendData(SendLinc: String);
Var
SendSock:Integer;
Begin
SendLinc:='GET / HTTP/1.1'+#13+#10+#13+#10;
For SendSock:=1 to Length(SendLinc) do if Send(Socket1,SendLinc[SendSock],1,0)=SOCKET_ERROR then exit;
End;

begin
ConnectToServer;
SendData('');
ReadData;
ShowMessage(HTMLText);
end.
Изменено: Юрий Стахорский - 21.03.2012 17:51:43
 
Спасибо! Благодарен, хоть и не c++  :)
 
P.S.2 Буду особо благодарен за платформенно-независимый способ, если таковой существует.
 
Что-то я читаю, читаю и понять не могу... В чем сложность-то заключается??
 
Я так понял, у Вас есть программа, которая все это грузит на винчестер. Ну так откуда-то она должна данные брать. Есть буфер памяти, из которого пишется в файл на винт. Найдите это в доступном Вам исходнике
Страницы: 1
Читают тему