Navegador Web en C

07/05/2004 - 02:14 por Richie | Informe spam
hola colegas necesito hacer un navegador web escrito en C puro, nada de Vc
ni C++, alguien me puede orientar acerca de lo que necesito hacer o donde
buscar informacion o algun proyectin pre construido??

Preguntas similare

Leer las respuestas

#6 Isidro Muñoz
10/05/2004 - 20:26 | Informe spam
Hola,

Al estar todo encapsulado pensamos que hay cosas que solo se pueden hacer
con COM. Con COM se pueden usar objetos ya implementados o crear
componentes, pero se puede hacer perfectamente todo en C puro, absolutamente
todo. Otra cosa es el trabajo que costará.

Todo se fundamenta en la api de windows y en drivers, los drivers
normalmente están hechos en C puro y ASM.

Si todo lo que usamos al final llama a api de windows o a drivers, está
claro que todo se puede hacer en C puro.

Pero hemos perdido el sentido de construir las cosas desde cero, o sea,
desde C puro. Entiendo que hay ciertas cosas que hacerlas en C puro son un
auténtico coñazo, pero todo se puede hacer en C puro.

Con respecto a realizar un navegador web, en realidad un navegador web se
fundamenta en el protocolo HTTP, lo único que tenemos que aprender es a usar
sockets, y enviar información que cumpla con el protocolo HTTP, otra cosa
será la interpretación de la información.

Saludos.
Isidro.

"Jordi Maycas" escribió en el mensaje
news:
a ver no me cuadra una cosa... como se puede hacer un navegador web en c,
ojo no c++, sin usar el control WebBrowser o similares? quiero decir... si
todos los controles de la API de Windows, MFC, ATL,.. estan organizados en
clases, constructores, destructores de objetos... como queremos hacerlo
usando C, sin C++, teniendo en cuenta (aunque ahora mismo lo pongo en
duda..., pero creo q si), si en C, no se pueden hacer referencia a


clases...
Respuesta Responder a este mensaje
#7 Isidro Muñoz
10/05/2004 - 20:40 | Informe spam
Hola Richie,

Vamos por partes.

Lo primero que vas a tener que usar es sockets, en Linux y Windows crea que
las funciones ANSI son sockets, read, etc. ( no lo recuerdo bien).

Tambien vas a tener que usar el protocolo DNS para resolver nombres.

Si un usuario quiere bajar la web http://www.microsoft.es

Tendrás que resolver la ip, para ello DNS, o tienes alguna utilidad o
libreria que te resuelva el nombre o a pelo.

Creas un sockets contra tu servidor DNS, y usando el protocolo DNS le
consultas por la direccion http://www.microsoft.es
Te dará la ip de esa direccion

Ahora tendras que crear otro socket contra esa ip al puerto 80.
Ahora tendrás que usar el protocolo HTTP, a lo mejor tend´ras que enviar
unos datos de identificación, navegador, ip, etc.etc. y creo que el comand
http para recibir un fichero es GET.
El servidor web te enviará por el socket abierto el fichero solicitado,
seguirá el protocolo HTTP, y toda información la grabarás donde tú quieras,
me imagino que la irás metiendo en un buffer y luego la grabarás donde tu
quieras, lo que recibirás será lo mismo que cuando le das a ver código
fuente en el navegador.
Si además quieres bajarte las imagenes, etc. Tendrá que analizar los
comandos HTTP recibidos, para ello te recomiendo que uses un parser de XML,
existen genéricos escritos en C puro, analizas los comandos http y donde
haga referencia a un fichero tendrás que volver a ejecutar el comando GET.

Si no recuerdo mal en www.w3c.org tienes toda la documentación de protocolos
de internet, ftp, http, dns, etc.

Si no usas interface gráfico ni quieres bajarte las imagenes asociadas o
ficheros flash, etc, asociados a un html, no creo que tendrás muchos
problemas en hacerlo en C puro.

Existe una utilidad en linux que es urlget, y tambien existe para Windows,
buscala en internet seguro que tiene el código fuente para linux. Esta
utilidad le indicas una dirección web y recibes el fichero html asociado, es
una aplicación de consola y por lo que me cuentas puedes querer hacer lo
mismo pero guardando la información en una base de datos.

Es la primera vez que intervengo en este foro y aver si tengo tiempo para
intervenir más veces.

Saludos.
Isidro.


"Richie" escribió en el mensaje
news:u$
asi es lo que pasa es esto, necesito acceder a una pagina web protegida


con
contraseña desde Qnx, Qnx es un SO parecido a linux o unix, pero mucho mas
pequeño, osea no necesito discos duros grandes ni memorias grandes para
correr Qnx, y este SO soporta programacion solo en C no C++ ni visuales,


por
eso es que necesito hacer un cliente http que este escrito solo en C, no
Respuesta Responder a este mensaje
#8 Richie
14/05/2004 - 00:58 | Informe spam
muchas gracias por las respuestas
dejenme veo cada una de sus sugerencias con calma y les respondo cual se
adaptó mas a mis necesidades

Gracias!!!!!

"Isidro Muñoz" <imunoz@(borrar este texto)daipro.net> escribió en el mensaje
news:%
Hola Richie,

Vamos por partes.

Lo primero que vas a tener que usar es sockets, en Linux y Windows crea


que
las funciones ANSI son sockets, read, etc. ( no lo recuerdo bien).

Tambien vas a tener que usar el protocolo DNS para resolver nombres.

Si un usuario quiere bajar la web http://www.microsoft.es

Tendrás que resolver la ip, para ello DNS, o tienes alguna utilidad o
libreria que te resuelva el nombre o a pelo.

Creas un sockets contra tu servidor DNS, y usando el protocolo DNS le
consultas por la direccion http://www.microsoft.es
Te dará la ip de esa direccion

Ahora tendras que crear otro socket contra esa ip al puerto 80.
Ahora tendrás que usar el protocolo HTTP, a lo mejor tend´ras que enviar
unos datos de identificación, navegador, ip, etc.etc. y creo que el comand
http para recibir un fichero es GET.
El servidor web te enviará por el socket abierto el fichero solicitado,
seguirá el protocolo HTTP, y toda información la grabarás donde tú


quieras,
me imagino que la irás metiendo en un buffer y luego la grabarás donde tu
quieras, lo que recibirás será lo mismo que cuando le das a ver código
fuente en el navegador.
Si además quieres bajarte las imagenes, etc. Tendrá que analizar los
comandos HTTP recibidos, para ello te recomiendo que uses un parser de


XML,
existen genéricos escritos en C puro, analizas los comandos http y donde
haga referencia a un fichero tendrás que volver a ejecutar el comando GET.

Si no recuerdo mal en www.w3c.org tienes toda la documentación de


protocolos
de internet, ftp, http, dns, etc.

Si no usas interface gráfico ni quieres bajarte las imagenes asociadas o
ficheros flash, etc, asociados a un html, no creo que tendrás muchos
problemas en hacerlo en C puro.

Existe una utilidad en linux que es urlget, y tambien existe para Windows,
buscala en internet seguro que tiene el código fuente para linux. Esta
utilidad le indicas una dirección web y recibes el fichero html asociado,


es
una aplicación de consola y por lo que me cuentas puedes querer hacer lo
mismo pero guardando la información en una base de datos.

Es la primera vez que intervengo en este foro y aver si tengo tiempo para
intervenir más veces.

Saludos.
Isidro.


"Richie" escribió en el mensaje
news:u$
> asi es lo que pasa es esto, necesito acceder a una pagina web protegida
con
> contraseña desde Qnx, Qnx es un SO parecido a linux o unix, pero mucho


mas
> pequeño, osea no necesito discos duros grandes ni memorias grandes para
> correr Qnx, y este SO soporta programacion solo en C no C++ ni visuales,
por
> eso es que necesito hacer un cliente http que este escrito solo en C, no


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida