EtServer

EtServer je malý a velmi jednoduchý webový server naprogramovaný v jazyku C, který umí poskytovat statické soubory z adresáře, který mu zadáte do argumentů, pomocí protokolu HTTP po síti.

Umí IPv6 a multithreading, tudíž není problém obsluhovat více požadavků najednou. Myšlen je hlavně pro jednoduché sdílení souborů v domácí síti (to byl také hlavní důvod, proč jsem jej naprogramoval).

Zdrojový kód programu je možné stáhnout buď ve formě tar.gz archivu, nebo si můžete naklonovat GitHub repozitář ethernetlord/etserver. Tam také můžete posílat issues či pull requesty, pokud to bude třeba.

Zprovoznění

Po stažení zdrojového kódu si program můžete zkompilovat pomocí jediného příkazu do terminálu v Unix-like systémech:
gcc -oetserver -lpthread etserver.c

Zkompilovaný program, který bude uložen do souboru etserver do složky se zdrojovým kódem, poté při spuštění pobírá 4 argumenty:

  1. IPv6/v4 adresa, na které chcete, aby server naslouchal (např. :: nebo 0.0.0.0)
  2. TCP port, na kterém má server poslouchat (např. 8080)
  3. Cesta ke složce, která bude používaná jako kořenový adresář pro web (povoleny jsou jak relativní, tak absolutní cesty)
  4. Index složky - název souboru (když bude URL namířená na složku, bude klientovi poslán soubor z dané složky s tímto jménem; např. index.html)

Pozn. Pokud se pokusíte naslouchat na portu 80, program s největší pravděpodobností skončí chybou. Je to z toho důvodu, že Unix-like systémy standardně nepovolují programům, které neběží pod uživatelem root naslouchat na portech nižších než 1024. Server ale pod rootem spouštět nedoporučuji! Místo toho raději server spusťte s vyšším naslouchacím portem a k jeho přesměrování na port 80 použijte firewall.

Program bude po celou dobu běhu připojen k terminálu a tak jej můžete ukončit standardní ovládací sekvencí CTRL+C.