Stap 4: Bewerkt bestand van de server genaamd newserver.lua, de sleutel tot multi-webpagina's.
Ik heb nu geupload de dossiers genoemd index.htm, newserver.lua en bob.htm naar de module; Opgestart en ingevoerde dofile("newserver.lua").
Het invoeren van mijn module'a IP-nummer, moet het bestand index.htm weergegeven. Bob.htm te klikken op de link naar Bob verschijnt, maar thuis gaat terug naar de indexpagina.
Enige discussie over newserver.lua:
Ik heb index.htm gecodeerd als het bestand 'landing'. Ik wil de module om te dienen index.htm wanneer ik voer van de module IP-adres in een browser.
Ik ben met behulp van LUA code te parsen van de binnenkomende request header om te bepalen als het verzoek Hiermee geeft u een bestand of niet. Een verzoek om net van mijn module IP nummer 192.168.11.44 opgeven niet een bepaald bestand.
Een gedeelte van een typische kop verzoekende index. kan uitzien:
KRIJGEN / HTTP/1.1
Gastheer: 192.168.11.44 verbinding: keep-alive
Accepteren: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
..............etc.
Dit verzoek vraagt om bob.htm:
KRIJGEN /bob.htm HTTP/1.1
Gastheer: 192.168.11.44 verbinding: keep-alive accepteren: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8... enz.
Parsen van het eerste voorbeeld, zou newserver.lua niet vinden van een bepaald bestand te openen. Omdat ik wil index.htm als het bestand van de landing, als tgtfile nihil terugkeert, vervang ik index.htm. Lijn 6.
Parseren van de koptekst voor tweede verzoek zal vaststellen dat het verzoek is het opgeven van een bestand, in dit geval 'bob.htm'. Dus, is de bob.htm geopend en één regel tegelijk met de code van de klant: send(file.read()) verzonden.
Het is belangrijk om niet file.read() bestanden die niet bestaan.
Hierdoor wordt de module paniek en opnieuw starten.
Dus, voordat lezen ik testen om te zien of het bestand met file.open(), lijn 7 en 8 bestaat.
Als nog geen bestand, stuurt newserver.lua gewoon terug 'bestand niet gevonden', en een link terug naar de landing page.
Dit gebeurt wanneer ik klik op Jill of Barb totdat ik htm-bestanden voor hen uploaden.
------------------------------------------------------
- --newserver.lua
- SRV=net.createServer (net. TCP)
- SRV:Listen(80,function(Conn)
- Conn: on("receive", function(client,payload)
- tgtfile = string.sub (payload,string.find (nettolading, "GET /") +5,string.find(payload,"HTTP/") -2)
- Als tgtfile == "" dan tgtfile = 'index.htm' einde
- lokale f = file.open(tgtfile,"r")
- Als f ~ = nihil dan
- klant: send(file.read())
- File.Close()
- anders
- klant: send("<html>")
- klant: send(tgtfile.."not Found-404 error.")
- klant: send("<a href='index.htm'>Home</a>")
- einde
- client: close()
- collectgarbage()
- f = nil
- tgtfile = nil
- einde)
- einde)
_____________________________________