Python y sockets

Aver, me han rulado una practica de la UOC (yo no estudio en esa uni, asi que... pero me ha llamado la atención la practica)

La practica en si se trata de hacer un proxy, que ademas filtre las URLs partiendo de un fichero de text con los servidores a filtrar, esta es la primera parte, la segunda parte se basaria mediante un sistema de direccionamient (PE: proxy-uoc://opcion) para poder editar el fichero...

Bien, todo estaria OK si no fuera que yo pretendo hacer esa practica en Python (la documentación disponible de la UOC es sobre Java y C), pero como a mi me la suda y soy mas chulo que nadie, pos taca, en Python... XD

La idea es clara, un socket servidor escuchando en el puerto 80 (o el que sea) a la espera de que el navegador envie la petición, me la cepillo, y la envio directo al servidor que me pide (filtrandolo si es el caso, y si lo es, devolver un error formateado en HTML)

Bien, todo va bien, cargo paginas como google, yahoo, whatismyip... etc... etc...

El problema que tiene ¡n los sockets en python es que tengo que leer mediante un buffer, para leer lo que revibe el socket, lo que hago es ir leyendo en un bucle, hasta que el texto leido no ocupe todo el buffer, y a medida qeu recive, lo envio al navegador.

La cosa va a palo seco, sin threads ni procesos, porque no tengo ni idea de como van en python... asi que todo son bucles, cuando termina uno, empieza el otro...

Bien, el tema es que a veces no se ha llenado el buffer pero queda texto por leer... y a veces queda alguna pagina a medio cargar...

A parte, no consigo que el proxy devuelva un codigo que me cargue la pagina, no se porque... paso practicamente el mismo codigo que recibo de cualquier server, incluido el codigo 200 OK, una fecha, una hora, un tipo de servidor... pero nada, no muestra nada... ni un simple hola...

Bueno, si alguien ha tocado el tema de sockets en python y me puede hachar una mano... o si los ha tocado a nivel general y se le ocurre como puedo solucionar esos problemas...

De hecho, estoy haciendo esta practica porque a partir de aqui, no creo que sea dificil implementar un pequeño servidor WEB casero.. que opinais?? seria factible???
sabes no se si tu practica tiene que ser ajuro en python o te lo exigieron pero si es asi me avisa y tratare de resolvertelo mi correo es alvarez_indriago@hotmail.com, en tal caso te doy una solocion muy viable y facil sabes usa de proxys a squid y de filtro de contenido a squidguard es mu facil de usars solo cambia en el squid.conf que normalmente esta en /etc*squid/squid.conf, dentro de el hay una linea que esta comentada que es redirect_program= coloca la ruta de squidguar -c y la ruta del squidguard.conf y listo todo lo que coloques en la base de dato este te lo filtra en la pagina http://www.squidguard.org esta ejemplo manuales y hasta la lista negra de internet ol espero ayudarte si no me avisa y te ayudo sin porblemas ok
1 respuesta