CONTENIDO DEL TEMA 3
"Sockets Internet en lenguaje C"
- Red de computadoras VER
- Componentes y dispositivos de red VER
- Data Packet (o Paquete de Datos) VER
- Protocolos TCP/IP y puertos VER
- Las 4 capas del modelo TCP/IP VER
- El modelo TCP/IP (Continuación) VER
- El modelo OSI VER
- PDF con las notas de definición de Socket, tipos de familias de sockets VER
- 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
- 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
- Infraestructura global de AWS VER
- Ubicaciones de regiones de nube pública de Oracle VER
- Mapa de todos los cables submarinos actualizado al 2024 VER
- Google planea conectar África con Australia a través de un inmenso cable submarino de fibra óptica VER
- La compleja infraestructura detrás de Netflix VER
- Escalamiento vertical y Escalamiento horizontal VER
- Archivo PNG que muestra gráficamente las funciones de los sockets AF_INET VER
- 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
- 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
- Factores que limitan la cantidad de datos leidos del socket PDF que menciona algunos factores que afectan la cantidad de bytes leidos del socket. VER
- programa que compara el tamaño y tiempo de ejecución de buffers de diferente tamaño VER
- programa03_mkget.c corregido VER
Importante:
El siguiente par de códigos muestra un primer Cliente con su respectivo servidor. Puedes probarlo en la misma máquina, abriendo 2 terminales.
Revisa la documentación de las funciones en el sitio de opengroup u otra bibliografía.
- 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 el cliente se conecta, este servidor le envia al cliente la frase "El mensaje del servidor es: Conexion exitosa!". Revisa los comentarios dentro del código VER
- programa04_cliente_internet.c Este programa es el cliente del servidor arriba mencionado. Cada vez que este cliente se conecta, recibe la frase "El mensaje del servidor es: Conexion exitosa!". Puedes hacer la prueba levantando el servidor y el cliente en la misma máquina. Observa que el cliente recibe la IP del servidor desde línea de comandos y ahí puedes pasar la IP o el loopback 127.0.0.1
Revisa los comentarios dentro del código VER
- ejemplo_listen.c Este programa es un servidor de sockets AF_INET que se levanta por el puerto 8080 y atiende un cliente. En la función listen() tiene un backlog con valor 1. La intención de este programa es que lances 3 clientes con el comando nc para comprobar lo siguiente:
- Primera conexión: Fue aceptada inmediatamente porque el servidor estaba libre.
- Segunda conexión: No pudo ser atendida de inmediato, pero quedó en la cola de espera (porque backlog = 1).
- Tercera conexión: Fue rechazada porque la cola ya estaba llena.
Para los clientes, abrirás 3 terminales y lanzarás el siguiente comando:
nc IP_DEL_SERVIDOR 8080
Revisa los comentarios dentro del código VER
- Tarea # 5 Realizar esta prueba y tomar captura de pantalla de todas tus terminales en una sola captura: la del servidor, la de los 3 clientes y una terminal más del servidor con el comando:
ss -tanp | grep :8080
VER
- programa05_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
- programa05_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