CONTENIDO DEL TEMA 3
"Sockets Internet en lenguaje C"

  1. PDF con las notas de definición de Socket, tipos de familias de sockets VER
  2. PDF con las notas de sockets Internet, es decir, de tipo AF_INET. Aquí se muestran las estructuras struct y las funciones de los sockets AF_INET VER
  3. programa01_ipaddr.c Este programa utiliza la función gethostbyname() la cual regresa un apuntador a estructura hostent. Revisa los comentarios dentro del código VER
  4. programa02_mkget.c Este programa es un cliente de servidor HTTP. Recibe el dominio del servidor desde línea de argumentos y utiliza el puerto 80. Al conectarse con el servidor, le envía la cadena GET /<enter>. Revisa los comentarios dentro del código VER
  5. programa03_mkget.c Este programa es un cliente de servidor HTTP, muy similar al programa anterior con la diferencia de que ahora envía la GET / HTTP/1.0<enter><enter>. Revisa los comentarios dentro del código VER
  6. Archivo PNG que muestra gráficamente las funciones de los sockets AF_INET VER
  7. programa04_servidor_internet.c Este programa es un servidor de sockets AF_INET que se levanta por el puerto 4898 y atiende un cliente. Cada vez que un cliente se conecta, incrementa en uno el valor de su variable visitas y le envia al cliente la frase "Este servidor ha sido contactado [n] veces". Revisa los comentarios dentro del código VER
  8. programa04_cliente_internet.c Este programa es el cliente del servidor arriba mencionado. Cada vez que este cliente se conecta, incrementa en uno el valor de su variable visitas y le envia al cliente la frase "Este servidor ha sido contactado [n] veces". Revisa los comentarios dentro del código VER
  9. programa05_servidor_internet.c Este programa es un servidor de sockets AF_INET que se levanta por el puerto 4897 y atiende un cliente. Cada vez que un cliente se conecta, el cliente debe enviar el nombre del alumno por lo que el servidor recibe el mensaje y responde con la frase "Alumno/Alumna registrado/registrada" y ambos terminan. Revisa los comentarios dentro del código VER
  10. PDF con el requerimiento del examen parcial. Utiliza el código del programa05_servidor_internet.c y el examen consiste en desarrollar el cliente para que se conecte al servidor y le envíe el nombre del alumno/alumna. VER
  11. programa06_servidor_internet.c Este programa es un servidor de sockets AF_INET que se levanta por el puerto 4897 y atiende un cliente. Cada vez que un cliente se conecta, el cliente debe enviar el nombre del alumno por lo que el servidor recibe el mensaje y responde con la frase "Alumno/Alumna registrado/registrada" y solo el cliente termina. El servidor queda arriba para esperar otros clientes. Es muy parecido al código anterior pero con la diferencia que cada alumno que se conecta y envía su nombre, se guarda en un archivo llamado alumnos.txt, con la fecha y hora de conexión. VER
  12. programa07_servidor_internet.c Este programa es un servidor de sockets AF_INET que se levanta por el puerto indicado como argumento desde la línea de comandos. Cada vez que un cliente se conecta, se inicia la comunicación en la que el cliente inicia la conversación sincronizada. La conversación termina cuando el cliente envía la palabra "adios". El servidor continúa vivo, esperando la conexión de otro cliente. El servidor se termina con Control-C. VER
  13. programa07_cliente_internet.c Este programa es el cliente del servidor arriba mencionado. Cada vez que este cliente se conecta, se inicia una conversación en la que el cliente escribe primero. La conversación es sincronizada y termina cuando el cliente envía la palabra "adios". VER
  14. programa08_servidor_internet.c Este servidor es similar al servidor del programa07, con la diferencia de que este servidor que crea hijos con fork() para atender varios clientes en paralelo. Cuando se acepta un cliente, el servidor padre crea un servidor hijo con la llamada a fork() para que el hijo atienda al cliente. Revisa los comentarios dentro del código. VER
  15. programa08_cliente_internet.c El cliente 08 es igual al cliente07 porque solamente cambió la funcionalidad del servidor pero la del cliente es exactamente la misma: una conversación que finaliza con la palabra "adios". Revisa los comentarios dentro del código. VER
  16. programa09_servidor_ssh.c Este servidor ejecuta comandos enviados por el cliente, similar a lo que realiza un servidor SSH. Este servidor está diseñado de la manera no recomendada, ya que recibe el comando y lo ejecuta con la función system(...) y la salida la direcciona a un archivo llamado "a.txt". Posteriormente se abre el archivo para lectura y el contenido del archivo (la salida del comando) es enviada al cliente. Revisa los comentarios dentro del código. VER
  17. programa09_cliente_ssh.c Este es el cliente del servidor ssh. Tanto cliente como servidor terminan después de ejecutar un comando. Revisa los comentarios dentro del código. VER