Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio de BSDSockets

Estas en el tema de Ejercicio de BSDSockets en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/11/2015, 05:15
 
Fecha de Ingreso: noviembre-2015
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Exclamación Ejercicio de BSDSockets

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!
  #2 (permalink)  
Antiguo 05/11/2015, 05:31
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Ejercicio de BSDSockets

Los sockets pueden ser, básicamente, de dos tipos: TCP y UDP.
  • TCP crea enlaces orientados a la conexión, es decir, se crea un canal y se mantiene abierto hasta que uno de los dos extremos cierra la conexión. Dado que todos los paquetes viajan por el mismo camino, éstos llegan ordenados a su destino. Este protocolo incluye ciertos mecanismos de control para evitar la pérdida de paquetes.
  • UDP crea enlaces no orientados a la conexión. Cada paquete que se manda viaja por el camino que mejor le convenga a la red, por lo que los paquetes pueden llegar desordenados al destino e incluso no llegar. La principal ventaja de este protocolo es que es mucho más ligero y rápido que TCP.
En tu caso tienes que descargar cosas usando el protocolo HTTP. Si dedicas unos minutos a revisar el estándar HTTP (sí, es un coñazo, pero si te quieres dedicar a esto más te vale acostumbrarte a leer especificaciones) verás que se hace uso del protocolo TCP, por lo que ya te están marcando un camino a seguir.

Si sigues revisando el estándar, verás que las peticiones se envian en formato string, lo cual resulta bastante sencillo de configurar... eso sí, tienes que tener mucho cuidado en que la petición que envías al servidor sea tal y como él la espera recibir, y eso incluye cuidar hasta los saltos de línea que se introducen.

Una vez dicho todo esto el ejercicio se resume en:
  • Pedir al usuario la URL de un recurso de la red
  • Obtener la ip que le corresponde al nombre introducido
  • Abrir un socket TCP y conectarse a la IP calculada
  • Enviar al servidor un mensaje en el que le indicas que quieres que te facilite el recurso indicado por el usuario.
  • Recibes la respuesta del servidor
  • Almacenas la respuesta del servidor en un fichero
  • Cierras la conexión
El programa tiene un poco de currillo. Si no tienes ni idea de sockets entonces te va a costar un poco ponerte al día al respecto... pero si no los entiendes es bastante complicado que te acabe funcionando el programa.


Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: ejercicio, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.