Servidor web en Python

Aquí tienes el servidor web que me inventé para servir la página de error cuando mi servidor se encuentra en mantenimiento. El servidor cuyo código vas a ver suelo ejecutarlo en mi netbook mientras hago las modificaciones necesarias en mi servidor habitual.

El código espera que haya 2 archivos: uno llamado error.html (con la página de error explicando el fallo o lo que estoy haciendo) y otro llamado logo.jpg, con el logo de mi web.

Cuando se recibe una petición HTTP de logo.jpg, se sirve el archivo logo.jpg. Cuando se pide cualquier otra página se sirve error.html, de forma que visitando cualquier URL se sirva error.html explicando la situación actual.

Pues bien, aquí viene el código, funciona bien en Linux, y sólo como usuario "root".

# -*- coding: utf-8 -*-
import socket
import os

servidor = ""
puerto = 90
clientesenespera = 5
tamanyo = 1024

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Crear el socket
socket.bind((servidor, puerto)) # Especificar servidor y puerto
socket.listen(clientesenespera) # Escuchar y especificar cuantas conexiones pueden quedar en espera

while True: # Bucle infinito. Es un servidor, así que hay que esperar.
  cliente, direccion = socket.accept() # Aceptar conexiones
  datos = cliente.recv(tamanyo) # Conseguir los datos del cliente
  
  if datos: # Si se reciben datos...
    
    lineas = datos.splitlines() # Dividir los datos en línea
    for linea in lineas: # Por cada línea...
      print(linea);
    
    cliente.send("Hola!")
    cliente.close()

Fecha de creación: 13/3/2012 22:34:28 | Última modificación: 4/2/2015 23:35:53 | Hora del servidor: 21/12/2024 15:57:00