Introducción de Sockets en C.



Documentos relacionados
TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Sistemas Operativos Distribuidos

Introducción a la programación con sockets en C

Estructuras y funciones de programación de sockets.

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Sistemas Distribuidos. Sockets

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011

Comunicación entre Procesos y Sockets

Arquitecturas cliente/servidor

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

SOCKET S. Alberto Castro Rojas

ARQUITECTURAS CLIENTE/SERVIDOR

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

Adaptación de aplicaciones a IPv6

Tema 4.1: - TRANSPORTE-

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

Mecanismos IPC: sockets

Diseño de aplicaciones distribuidas ÍNDICE

Clase de Sockets en lenguaje C. Prof. Ricardo González

Nivel de Transporte en Internet

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Programación C/S Básica

Programación con Sockets

Migrando aplicaciones a IPv6

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

Tema 4: Sockets: Un interfaz con TCP/IP

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw

Problemas de Redes de Computadores. Conjunto de problemas 1

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet

-> Todo socket viene definido por dos características fundamentales:

Programación de aplicaciones distribuidas usando sockets

Redes de Computadores Nivel de Aplicación: Programación con sockets I

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar

Práctica 1. Uso básico de servicios cliente-servidor

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

BOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones.

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP. Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011

3.INSTALACIÓN Y CONFIGURACIÓN DE LOS EQUIPOS DE RED

Juan de Dios Murillo Morera Santiago Caamaño Polini INTRODUCCIÓN

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Características de un lenguaje ideal para robótica

Estructuras y funciones de programación de sockets.

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

ARQUITECTURA DE REDES Laboratorio

Arquitecturas cliente/servidor

Preguntas Frecuentes. Uruguay Estudia

Arquitectura de Redes y Servicios de Telecomunicación

Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

Sistema Integrado de Gestión INSTRUCTIVO PARA USUARIOS DE CUENTAS DE CORREO ELECTRONICO INSTITUCIONAL

Tema 3: COMUNICACIÓN ENTRE PROCESOS

Desarrollo de Aplicativos con winsockets

Tema 4 Sockets: Un interfaz con TCP/IP

Arquitecturas Cliente/Servidor

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Práctica 1: sockets en Python

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

Servicio de groupware

Es un conjunto de dispositivos interconectados entre si que comparten recursos y/o servicios como video, voz y datos a través de medios guiados, no

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail).

REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA. Profesor: Jhon Jairo Padilla Aguilar, Ph.D.

Tecnologías utilizadas Programas utilizados: Lenguajes utilizados: Diagramas Diagrama de clases Servidor...

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Conceptos básicos de redes TCP/IP


La vida en un mundo centrado en la red

SIAM WEB FOTOGRAFOS CARACTERÍSTICAS GENERALES. El Sistema de Recuperación y Archivo de documentos.

Programación con sockets

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

MANUAL DE USUARIO. Guía de Uso para el Doctor Especialista. Sistema de Telemedicina para el Monitoreo de niveles de Glucosa GlucoSult

Protocolos de red. IP: Internet Protocol

ADMINISTRACIÓN GENERAL DE TECNOLOGÍA DE LA INFORMACIÓN ADMINISTRACIÓN CENTRAL DE DESARROLLO Y MANTENIMIENTO DE APLICACIONES

Práctica de laboratorio: Configuración de una NIC para utilizar DHCP en Windows XP

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

Programación de Sockets

Características de Samba

MANUAL DE USUARIO DE OFICINA CONECTADA

LYRIC GSM. GUÍA DE CONFIGURACION PARA CISCO CUCM VER 7.1 A 11.x. Versión : 1.0 Fecha : lunes, 24 de agosto de Página 1

Tema 4. Gestión de entrada/salida

Direccionamiento IPv4

Manual de configuración del correo. electrónico de alumnos de la UBU

Qué es necesario para conectarse a Internet?

Transcripción:

PRÁCTICA 2: Introducción de Sockets en C. 1

La Interfaz Socket es una API para redes TCP/IP que se compone de funciones o rutinas. Originalmente se construyó a principios de los 80 para el sistema operativo UNIX, aunque hoy en día también la utilizan otros sistemas operativos como Linux, Microsoft Windows, Mac, OS2, etc... 2

Para que se dé la comunicación en una red, el programa requiere un Socket en cada extremo del proceso de comunicación. Las llamadas al sistema de E/S en UNIX se basan en el proceso de open-read-write-close (abrir-leer-escribir-cerrar). La interfaz de Sockets para comunicarse con una red TCP/IP, abre primero una conexión con la red, se leen y escriben datos a través de ella y una vez terminados los procesos se cierra la conexión. 3

Las aplicaciones desarrolladas en Sockets están basadas en la arquitectura Cliente-Servidor. Una aplicación, el servidor, permanece a la espera de que otras aplicaciones deseen sus servicios: Utilizando un determinado protocolo de red y de transporte. En una determinada dirección de red. En un determinado número de puerto. Otra aplicación, el cliente, solicita los servicios de la aplicación servidor: Utilizando el mismo protocolo de red y de transporte. Una dirección de red. Un número de puerto. 4

El primer paso para que cualquier aplicación cliente o servidor pueda comunicarse es crear un Socket. Se realiza con la función socket(). Sus parámetros son: Dominio. Tipo. Protocolo. El valor devuelto es un entero: >=0 si el socket es creado correctamente. <0 si se produce un error en la creación. 5

Dominio: Indica el dominio de comunicación que se desea utilizar: AF_INET o (PF_INET) : Protocolos de Internet. AF_UNIX o (PF_UNIX) : Comunicación local (conexión entre aplicaciones del propio ordenador). PF: Familia de protocolos AF: Dirección de protocolos (En la práctica AF=PF) 6

Tipos Stream (SOCK_STREAM): Orientado a conexión (TCP). Fiable, se asegura el orden de entrega de mensajes. No mantiene separación entre mensajes (stream). Datagrama (SOCK_DGRAM): Sin conexión (UDP). No fiable, no se asegura el orden en la entrega. Mantiene la separación entre mensajes. Protocolo IPPROTO_TCP, IPPROTO_UDP. Si es 0, el valor por defecto es TCP para SOCK_STREAM y UDP para SOCK_DGRAM. 7

Una transmisión está caracterizada por varios parámetros: Dirección host y puerto origen. Dirección host y puerto destino. Protocolo de transporte (UDP o TCP). Una dirección destino viene determinada por: Dirección del host: 32 bits. Puerto de servicio: 16 bits (Reservados: 0..1023) (Espacio de puertos TCP y UDP independientes) Los usuarios manejan direcciones en dos formatos: decimal-punto: 10.10.20.11 dominio-punto: atc2.uah.es 8

9

Para asignarlos se utiliza una estructura genérica de datos que almacena la dirección de la familia, el tipo de socket y el protocolo de dirección: En AF_INET es (struct sockaddr_in). Miembros de la estructura: o sin_family: dominio (AF_INET). o sin_port: puerto. o sin_addr: dirección del host. Debe inicializarse previamente a 0 con la función bzero(). Cada Socket debe tener asignada una dirección única. La asignación de una dirección a un Socket ya creado se realiza con la función bind(). 10

Un Socket servidor asociado a una dirección y puerto es puesto en escucha con la función listen(), que indica al socket que atienda las conexiones entrantes y que confirme las solicitudes de conexión. El cliente realiza solicitud de comunicación por medio de la función connect(). Un Socket stream sólo permite un único connect durante su vida. Para conectarse con el mismo u otro hay que crear un nuevo Socket. El servidor acepta las peticiones de conexión con la función accept(). 11

Llamadas al sistema para Sockets en un protocolo orientado a la conexión (TCP) 12

Cuando se produce la conexión, el servidor obtiene: La dirección del Socket del cliente. Un nuevo descriptor (Socket) conectado al Socket del cliente. Después de conexión quedan activos 2 Sockets en el servidor: El original para aceptar nuevas conexiones El nuevo para enviar/recibir datos por la conexión establecida. 13

A continuación se procederá al envío y recepción de datos: Se realiza con la función read() para leer datos y write() para escribir datos en transmisiones TCP. Se realiza con las funciones recvfrom() o recv() para leer datos y sendto() para escribir datos en transmisiones UDP. Para cerrar la conexión: close(): Cierra ambos tipos de Sockets (UDP y TCP). Si el socket es de tipo stream cierra la conexión en ambos sentidos. shutdown(): Para cerrar la conexión en un único extremo: 14

Otras funcionalidades: Obtener la dirección a partir de un descriptor: getsbyname(): Obtiene la dirección (en Network Byte Order) que corresponde al nombre del host. gethostbyaddr(): Obtiene la dirección a través una estructura hostent con la información del host dado en binario. Transformación de valores: De formato host a red (Network Byte Order): Enteros largos: htonl(). Enteros cortos: htons(). De formato de red (Network Byte Order) a host: Enteros largos: ntohl(). Enteros cortos: ntohs(). 15

Múltiples clientes con streams: Con servidor iterativo no concurrente Si 1 conexión por petición. Se intercalan peticiones de los clientes (1 por iteración). Si varias peticiones de cliente usan misma conexión. No se trata a otro cliente hasta que no termine el actual. Con servidor concurrente. Si 1 conexión por petición. Se sirve una petición y se termina. Si varias peticiones de cliente usan misma conexión. Se sirven peticiones hasta que cliente cierra el socket. 16