vložil Radek Červinka
26. srpna 2011 01:19
Abych ještě dokončil myšlenku. Takový HTTP server v aplikaci může být zajímavá věc. Pokud znáte utorrent tak ten kromě Windows GUI obsahuje i vlastní HTTP server, který pokud se povolí, umožňuje sledovat stav stahování vzdáleně.
Což mimochodem ukazuje pěkné použití - tj. zobrazení stavu výpočtu nebo serveru. Hodně lidí to používá např. pro komunikaci se svojí službou (nemusí vytvářet vlastní protokol, ovládání třeba i z prohlížeče atd).
Samozřejmě nemusí se jednat o plnohodnotný server, stačí aby uměl reagovat na základní požadavky. V Delphi můžete použít buďto Indy nebo Synapse, první na to má komponentu, druhý demo, které bylo kdysi součástí celého balíku synapse (stáhnout). Musel jsem tam upravit (podle mne) problém s nastavováním priority vlákna před voláním constructoru TThread, což v Delphi XE nebo Windows 7 64 (nehodící se škrtněte) byl problém.
Pro Indy se jedná o komponentu TIdHttpServer.
procedure TForm4.idhtpsrvr1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
// jen odpovez pozadavkem
AResponseInfo.ContentText := ARequestInfo.RawHTTPCommand;
end;
Jinak zajímavý HTTP server napsaný v Delphi včetně zdrojových kódu je od ritlabs.com - TinyWeb, v úpravě verze TinyWeb s podporou PHP. Ale to sem nepatří.