Título: Ejercicio BSD Sockets Publicado por: Gonzi_Malaga en 5 Noviembre 2015, 12:21 pm Buenas! Estoy con una puñetera práctica de Erasmus que tenemos que hacer sin que nos expliquen nada... alguno sabría como cojones hacer esto? porque ni siquiera en google encuentro nada...
Create C/C++ program for UNIX operating system using BSD sockets which will download specified object (page, picture, generally any file) from WWW server. · Final program should be compiled into filename called download. · Create makefile which can be used for automatic compilation of source file(s) by typing make statement in UNIX shell. · Downloaded file will have name as presented in URL or index.html for default index page. Graciaaaaas! Título: Re: Ejercicio BSD Sockets Publicado por: ivancea96 en 5 Noviembre 2015, 16:13 pm Esto son y así se usan los sockets BSD: http://wiki.treck.com/Introduction_to_BSD_Sockets (http://wiki.treck.com/Introduction_to_BSD_Sockets)
Por lo demás, descargar un archivo o página de una web, y guardarla en un fichero. Para descargar de la web, necesitarás conocer el protocolo HTTP. Busca acerca de él, o mira algún ejemplo, como https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_message (https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_message) Te toca trabajarlo. La complejidad de este problema en mi opinión se centra en: -1: Controlar los sockets: abrirlos, enviar datos, recibir datos -2: Controlar el protocolo HTTP: Pedir al servidor, recibir datos del servidor -3: Los datos recibidos del servidor, tendrán que ser separados entre cabecera y cuerpo. Lo que pondrás en el archivo, es el cuerpo, así que separarlos correctament ees esencial. Como datos en los que fijarte del protocolo HTTP, decir que el campo "content-length" de la cabecera, te dice el tamaño del cuerpo en bytes, y que el cuerpo comienza a partir de 2 saltos de linea contiguos ("\r\n\r\n"). Si tienes más problemas, comenta. Título: Re: Ejercicio BSD Sockets Publicado por: Gonzi_Malaga en 5 Noviembre 2015, 16:44 pm Pero el procedimiento a seguir cual sería?
abro el socket envio que dato? como lo recibo? Ando muy perdido en C y con sockets mas aun y leo que send es para TCP y UDP me pierdo... (HTTP era con TCP?) Título: Re: Ejercicio BSD Sockets Publicado por: ivancea96 en 5 Noviembre 2015, 22:47 pm Sí, HTTP es TCp. Envías la petición, y luego esperas la respuesta.
Busca por ahí información sobre el protocolo HTTP. Si quieres un ejemplo más en vivo, puedes ver las peticiones que envía el navegador, y las respuestas. Para ello, en Firefox por ejemplo, le das a "Inspeccionar elemento" en el menú del botón secundario del ratón, y vas a "Red". En resumen, primero trata de abrir un socket TCP. Luego, mira acerca del protocolo HTTP. |