Código fuente de Lynx

Iniciado por OmarHack, 26 Mayo 2013, 13:56 PM

0 Miembros y 1 Visitante están viendo este tema.

OmarHack

Si alguien tiene el código fuente le agradecería que me lo pasara. Preferentemente lo quiero para Windows 32 aun que si es para otro o.s. también me sirve.
Lo quiero para hacer un navegador web así que si tenéis otro que me pueda servir también lo agradecería. A ser posible no muy complejo.
Un saludo!
I like to test things.

lapras


OmarHack

Gracias, ya la mirara antes de crear el tema y no soy capaz de sacarlo de ahí no hay más que redirecciones a otras páginas y no encuentro el source ni a palos.  :xD
Un saludo.
I like to test things.


lapras

#4
Si hombre, el código fuente está en zip.
http://lynx.isc.org/lynx2.8.7/lynx2.8.7.zip
El contenido que buscas debe de estar en el directorio WWW/Library/Implementation.

¿No es eso lo que estas buscando?

OmarHack

Siii, me imaginaba menos código y en menos archivos... Tiene más carpetas el kernel de linux xDDDD
Muchas gracias aún que no me sirva :xD
¿No sabrás de un navegador que venga como dios manda en un archivo .cpp de 300 lineas no?
Encontré uno en Qt 4 pero yo tengo Qt 5 y no puedo compilarlo  :-(   
I like to test things.

lapras

#6
Es que lynx aunque parezca un navegador sincillo es muy completo.
No conozco ningún navegador tan pequeño.
Lo que te puedo decir es que para hacer un navegador sencillo sólo tienes que saber un protocolo que es http.
Y dentro de http tienes que saber hacer 2 cosas:

1) Enviar una petición
Las peticiones en http tienen esta estructura:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: nombre-cliente
[Línea en blanco]


En resumen lo que debes hacer es crear un socket TCP, conectarlo a el servidor web que especifique el usuario y por último enviar la petición http.

2) Interpretar una respuesta.

Interpretar la respuesta del servidor será un pelín mas difícil.
Tiene esta estructura:

HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
Content-Length: 1221

<html>
<body>
<h1>Página principal de tuHost</h1>
(Contenido)
 .
 .
 .
</body>
</html>


Si la primera linea te dice OK, entonces esta es la respuesta que queremos. Si no lo es, tenemos que enviar la petición usando otra version de http.
Ya ves que te envían cosas como la fecha(normalmente hay mas cosas). Para un navegador básico podemos ignorar todo esto y quedarnos con "Content-Length:".
A partir de eso sabes lo grande que es lo que viene a continuación.

Bien, para empezar puedes detectar con un bucle todas las tags <p> y </p> que indican que hay texto entre ellas.
Entonces imprimes por pantalla lo que hay entre todas las tags <p> y </p>.
Y con eso ya tendrias un navedor web tan simple que no puede existir algo más simple. xD

Más información en: http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol
Guia de programación sockets C: http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html

Y otra cosa, si pillas el wireshark y te pones a capturar tráfico http aprenderás cómo funciona http en un periquete.

OmarHack

Muchísimas gracias!!! En breve me pongo a ello. Me has ayudado muchísimo.
Pd: A ver que sale.  :silbar:
Pd2: La verdad es que me esperaba que fuera más sencillo... Como engañan las apariencias.
Un saludo!
I like to test things.

lapras

¿Cómo llevas la programación de sockets?
Si sabes programar sockets TCP más o menos bien no te costará mucho :)

OmarHack

Apenas los he tocado, leeré algún manual para manejarlos bien y venga! :)
I like to test things.