Fundamental 201

Unidad 1 / Escenario 1 Lectura fundamental Aplicaciones con énfasis en el manejo transaccional de la información Conten

Views 114 Downloads 2 File size 935KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Unidad 1 / Escenario 1 Lectura fundamental

Aplicaciones con énfasis en el manejo transaccional de la información Contenido 1 2 3 4 5 6 7 8

Conceptos fundamentales de transacción Creación de un socket Supresión de un socket Enlace de un socket Primitivas de un socket desde el punto de vista del server Primitivas de un socket desde el punto de vista del Cliente Ejemplo completo de un servidor Ejemplo de un cliente

Palabras claves socket, transacción, programación, creación, supresión.

1. Conceptos fundamentales de transacción. 1.1 ¿Qué es una transacción? Se define como transacción, al conjunto de instrucciones de computador que se deben realizar para ejecutar una operación en tiempo real, por lo general sobre una base de datos. Un ejemplo de una transacción es aquella operación que realiza un cliente de un banco cuando realiza un retiro, o una consulta a través de un cajero automático.

1.2 Fundamentos de sockets ¿Qué es un socket? Para poder comprender la funcionalidad de una transacción, primero se debe entender el concepto de socket y su funcionamiento. Uno de los grandes aportes de la Universidad de Berkeley a las operaciones computacionales en línea, fue la definición del socket. Para entender este concepto de una manera sencilla es haciendo un paralelo con una conversación por teléfono o una conversación usando un chat, donde cada uno de los participantes de dicho evento está en lugares diferentes. Se denomina dominio de un socket al conjunto de sockets con los cuales se estable comunicación. Los protocolos de comunicación usados en los sockets son: TCP, UDP, IP. Algunos de los dominios son:

 AF_NS



/* Protocolos propiedad de XEROX */

 AF_APPLETALK /* De Apple */  AF_SNA

/* IBM */

 PF_INET

/* Protocolo para IPV4 */

 PF_INET6

/* Protocolo para IPV6 */

 PF_LOCAL /* Para comunicaciones locales */ En resumen, un socket es un punto de comunicación a través del cual un proceso puede enviar o recibir información. Es lo que comúnmente se conoce como comunicación cliente servidor.

POLITÉCNICO GRANCOLOMBIANO

2

1.3 Tipos de sockets para comunicaciones El tipo de un socket define un conjunto de propiedades para la comunicación en la cual esté involucrado el socket.

1.3.1 Propiedades de una comunicación. A. Fiabilidad. Ningún dato se pierde en el proceso de transmisión. B. Conservación del orden de los datos. Los datos en el orden en que se envían. C. No duplicación de datos. Al destino solo debe llegar una copia del dato enviado. D. Comunicación en modo conectado. Primero es estable una conversación entre el emisor y el receptor. Así cuando se envía un mensaje, éste ya tiene el destino predefinido. E. Conservación de los límites. En el destino se encuentra el límite del mensaje. F. Mensajes urgentes. Es una propiedad utilizada para enviar los datos de un mensaje, por fuera del flujo normal. Se les denomina como “out of band”. Algunos tipos son: a. SOCK_DGRAM /* Para mensajes en modo asincrónico, el cual envía datagramas de tamaño fijo y limitado, usa el protocolo UDP */ b. SOCK_STREAM. /* Se usa para comunicaciones bidireccionales, en modo conectado, es confiable. Usa el protocolo TCP. La transmisión de datos se hace de manera ordenada */ c. SOCK_RAW.

/* Se usa con protocolos de red más bajos como IP. Es un tipo de

uso reservado para súper usuarios (root) */ d. SOCK_SEQPACKET. /* Se usan en comunicaciones bidireccionales, altamente confiable, pada datagramas de longitud fija y la transmisión de datos se hace de manera ordenada */ Los tipos más usados, son los tipos “a“ y “b”

POLITÉCNICO GRANCOLOMBIANO

3

2. Creación de un socket Para crear un socket se debe usar la primitiva socket. Ésta primitiva, contiene las características del socket a saber: A. El tipo, el dominio y el protocolo. B. El estado del socket (conectado o no). C. La dirección del socket conectado en el evento que sea de este tipo. D. Punteros a los datos (tanto en emisión como en recepción). E. Protocolos de red y de transporte. F. Dirección de red. G. Número de puerto. El valor devuelto es un entero (>= cuando el socket es creado correctamente ò < 0 si falló el proceso de creación).



Ejemplo:

Tabla 1. Creación de un socket

Int socket (dominio, tipo, protocolo) { int dominio; */ PF_INET */ Int tipo; */ SOCK_STREAM */ Int protocolo */ 0: protocolo por defecto */ } #include #include ... int transa; ... if ((transa=socket(PF_INET,SOCK_STREAM,0))