Paso 4: Modificar archivo de servidor llamado newserver.lua, la clave de múltiples páginas.
Ahora he subido los archivos llamados newserver.lua, index.htm y bob.htm al módulo; Dofile("newserver.lua") reinicia y entró.
Mi número de IP de module'a debería mostrar el archivo index.htm. Haciendo clic en el enlace para Bob mostrará bob.htm, y casa devolverá a la página de índice.
Algunos debates sobre newserver.lua:
Yo he codificado index.htm como el archivo de 'aterrizaje'. Quiero el módulo para servir index.htm cuando entro IP del módulo en un navegador.
Estoy usando el código LUA para analizar la solicitud de Rúbrica entrante para determinar si la solicitud especifica un archivo o no. Una solicitud sólo el número de mi módulo IP 192.168.11.44 no especifica un archivo en particular.
Una parte de un índice que encabezado típico. puede verse como:
OBTENER / HTTP/1.1
Host: 192.168.11.44 conexión: keep-alive
Aceptar: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
..............etc.
Esta solicitud está pidiendo en bob.htm:
Haz /bob.htm HTTP/1.1
Host: 192.168.11.44 conexión: keep-alive aceptar: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8... etc.
Analizar el primer ejemplo, newserver.lua no encontrar un archivo específico para abrir. Ya que quiero que index.htm que el archivo de inicio, cuando tgtfile devuelve nil, sustituir index.htm. Línea 6.
Analizar el encabezado de la segunda solicitud se identificará que la solicitud especifica un archivo, en este caso 'bob.htm'. Así, bob.htm es abierto y envió una línea en el tiempo con el código de cliente: send(file.read()).
Es importante no file.read() archivos que no existen.
Esto hará que el módulo y se reinicie.
Por lo tanto, antes de leer prueba para ver si el archivo existe con file.open(), línea 7 y 8.
Si no hay ningún archivo, newserver.lua simplemente devuelve 'archivo no encontrado' y un enlace hacia la página de inicio.
Esto sucede cuando hago clic en Jill o lengüeta hasta subir archivos htm para ellos.
------------------------------------------------------
- --newserver.lua
- SRV=net.createServer (red. TCP)
- SRV:Listen(80,function(Conn)
- Conn: on("receive", function(client,payload)
- tgtfile = string.sub (payload,string.find (capacidad de carga, "GET /") +5,string.find(payload,"HTTP/") -2)
- Si tgtfile == "" entonces tgtfile = "index.htm" end
- local f = file.open(tgtfile,"r")
- si f ~ = nil entonces
- cliente: send(file.read())
- File.Close()
- otra cosa
- cliente: send("<html>")
- cliente: send(tgtfile.."not Found-404 error.")
- cliente: send("<a href='index.htm'>Home</a>")
- final
- cliente: close()
- collectgarbage()
- f = nil
- tgtfile = nil
- final)
- final)
_____________________________________