Programación con sockets II

Slides:



Advertisements
Presentaciones similares
Arquitectura cliente-servidor
Advertisements

Tabla de Contenido Concurrencia.
Con el comando netstat (Network status) mostrará información sobre la configuración y actividad de la red.
INF 1400: Redes de Computadores
TEMA 2 Técnicas básicas de construcción de aplicaciones distribuidas
Sockets y Threads en JAVA
Sistemas Informáticos Distribuidos
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Introducción a Programación Concurrente
Servidor.pl #!/usr/local/bin/perl use Socket; ($port) $port = 2345 unless $port; Empleamos el módulo Socket, equivalente a las definiciones que.
Comunicación y sincronización entre procesos
Cliente.pl #!/usr/local/bin/perl use Socket; ($them, $port) $port = 2345 unless $port; $them = 'localhost' unless $them; El primer argumento es.
Servidor de Batalla Naval.
1 IPC - Inter Process Communication Memoria – Pipes – Sockets – Rendez Vous - Mailbox.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
MRMUC Instructor Notes
Sockets.
SOCKETS.
Socket en.NET Grupo # 5. ¿Qué es un Socket? Es la relación entre un puerto de un equipo y el puerto de otro equipo. ¿Qué es un puerto? Es el medio por.
CAPITULO 6 CAPA DE TRANSPORTE
Clase de Sockets en lenguaje C
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Enlaces Curso más teórico Configuración/instalación apache
Sockets programming. Tipos de datos. Tipos de datos mas usados en programas cliente-servidor: u-char Unsigned 8-bit character. u-short Unsigned 16-bit.
Universidad Autónoma de Colombia Comunicación de procesos Sockets Ingeniería de Sistemas Electiva Tecnológica.
Cálculo de Operaciones Básicas Theo Soto G. Stefan Zepeda R. 30 de Noviembre del 2007.
Departamento de Arquitectura y Tecnología de Computadores E.T.S. Ingeniería Informática Lección 2. La API de Sockets Julio Ortega Lopera. Curso 2004/2005.
1 SOCKETS AIRAN GODOY HERNANDEZ JOSE MARIA RODRIGUEZ RODRIGUEZ 5º INGENIERIA EN INFORMATICA AMPLIACION DE SISTEMAS OPERATIVOS.
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
INTEGRANTES : Selvin Rivas José Vásquez Francisco Pérez J’ Alberto Patal.
Capa Aplicación: Programación de sockets
Curso Redes (IS20) -Capítulo 5 1 Redes (IS20) Ingeniería Técnica en Informática de Sistemas Práctica 2- Comunicación de procesos mediante sockets.
Nivel de Transporte en Internet
DIAGRAMA DE FLUJO Y SECUENCIAL DE UN SERVIDOR DE ENVIO DE CORREO
Servidor de Almacenamiento de correo SG14, SG15, SG16 y SG17.
C1-Sistemas Distribuidos Concurrencia Varias componentes en una misma máquina-> Concurrencia Inteleaving (1 sola CPU, N procesos) Paralelo (N CPU, M procesos)
1 Introducción a las Comunicaciones en Red. import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static.
¿Qué es un socket? trab/satobigal/documentacion/beej/index.html Es una forma de comunicarse con otros programas usando.
INTEGRANTES: JORGE CRUZ DE OCAMPO EDSON SANCHEZ SUAREZ
Capa Aplicación: Programación de sockets
Capítulo 3: Capa Transporte - I
Capa Aplicación: Programación de sockets
Conceptos Básicos de Programación
Paul Leger SOCKETs Paul Leger
Paul Leger SOCKETs Paul Leger
Programación con sockets I
Capa Aplicación: File Transfer Protocol
Ayudantía de EC: Sockets
Capa Aplicación: File Transfer Protocol
Capa Aplicación: Programación de sockets
DNS en GNU/Linux.
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
PROCESOS COMENZAR.
DOCENTE: EMILIO ISMAEL BUSTAMANTE MONTES
Capítulo 3: Capa Transporte - I
Taller de Programación en Redes
Capítulo 3: Capa Transporte - I
Protocolos Protocolos de red.
Punto 7 – Agente Relay DHCP
Tema2. Instalación y administración de DHCP
Eslared 2006 Seguridad Informática
Capa Aplicación: Programación de sockets
MPI - “Programación” Rogelio Ferreira Escutia
Informática Ingeniería en Electrónica y Automática Industrial
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
Capa Aplicación: 2.7 Programación de sockets
TT Entrenamiento Avanzado
Transcripción de la presentación:

Programación con sockets II

Esquema de aplicación con TCP Procesado de la petición server Socket() client bind() listen() socket() accept() Espera Establece conexión connect() Petición read() Espera write() Procesado de la petición Respuesta read() Espera write() Liberación de la conexión close() close()

Procesado de la petición Servidor Iterativo ds=socket() bind(ds) listen(ds) nds=accept() Espera read(nds) Espera Fin de conexión: espera nuevas conexiones Atiende conexión Procesado de la petición write(nds) close(nds)

Procesado de la petición Servidor Concurrente ds=socket() bind(ds) listen(ds) padre nds=accept() Espera hijo fork() close(nds) exit() close(nds) read(nds) Espera Procesado de la petición write(nds) close(ds) Puede haber varios hijos simultáneamente

Inicialización del servidor Crear un socket TCP ds = socket(AF_INET, SOCK_STREAM, 0) Crear un cola de espera de peticiones de conexión int listen(int ds, int nb) ds: descriptor del socket de escucha nb: número máximo de peticiones pendientes (0..5). Aceptar una conexión int accept(int ds, struct sockaddr * p_adr, int * p_lgadr) ds: descriptor del socket p_adr: dirección del socket conectado p_lgadr: puntero al tamaño de la dirección Devuelve el descriptor de un nuevo socket conectado con el cliente.

Inicio y fin de conexión. El cliente establece una conexión int connect(int ds, struct sockaddr *p_adr, int lgadr) ds: descriptor del socket local p_adr: puntero a la dirección del servidor lgadr: longitud de la dirección Cerrar conexión totalmente int close(int ds); Cerrar la conexión de forma controlada int shutdown(int ds, int sens) ds: descriptor del socket sens: control de la desconexión 0: no RX; 1: no TX; 2: no RX y no TX Cuando el cliente cierra la conexión, read() del servidor devuelve 0

Enviar datos int write(int ds, char * msg, int lg) ds: descriptor del socket msg: mensaje a enviar lg: longitud del mensaje int send (int ds, char *msg, int lg, int opcion) ds: descriptor del socket msg: dirección del mensaje a enviar lg: longitud del mensaje opcion: 0, MSG_OOB, MSG_PEEK Si opción vale 0, equivale a write()

Recibir datos int read(int ds, char * msg, int lg) ds: descriptor del socket msg: dirección donde se guarada el mensaje recibido lg: longitud de la memoria reservada para guardar el mensaje int recv (int ds, char *msg, int lg, int opcion) ds: descriptor del socket msg: dirección del mensaje a enviar lg: longitud del mensaje opcion: 0 , MSG_OOB, MSG_PEEK Si opción vale 0, igual que read

Asignación de puertos PUERTOS TCP UDP Reservados 1-1023 1-1023 Asignados por el sistema 1024-5000 1024-5000 Asignados por rresvport() 512-1023 --- Libres para el usuario 5001-65535 5001-65535 Entre 1 y 1023 sólo se puede obtener con bind() si es root Si ponemos bind(0), el sistema asigna uno del rango (1024..5000) El usuario debe elegir puertos para sus aplicaciones entre (5001..65535)