Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/11/2015, 05:31
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 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.