PDF de programación - Implementación cliente servidor mediante sockets

Imágen de pdf Implementación cliente servidor mediante sockets

Implementación cliente servidor mediante socketsgráfica de visualizaciones

Publicado el 24 de Noviembre del 2019
560 visualizaciones desde el 24 de Noviembre del 2019
187,4 KB
12 paginas
Creado hace 11a (11/09/2012)
A T

I m p l e m e n t a c i ó n c l i e n t e s e r v i d o r m e d i a n t e s o c k e t s

Implementación cliente
servidor mediante sockets
Client-server implementation using sockets

Héctor Julio Fúquene Ardila*

Fecha de recepción: septiembre 30 de 2011
Fecha de aceptación: noviembre 4 de 2011

Resumen
Este artículo pretende hacer visibles los requerimientos tanto físicos, lógicos y

funcionales necesarios para establecer una comunicación entre
dos computadores utilizando sockets; se plantean los diferentes
protocolos mediante los cuales se puede realizar su implemen-
tación; además, se presentan las principales características téc-
nicas a tener en cuenta y se realiza la implementación mediante
el uso del lenguaje de programación como C++.

Palabra clave
Programa cliente, programa servidor, comunicaciones, puerto
lógico, protocolo, dirección IP.

Abstract
This article aims to make visible the requirements of both physical, logi-
cal and functional requirements for communication between two com-
puters using sockets, raised different protocols by which implementa-
tion can be done, also presents the main technical features to consider
and implementation is done using the programming language C + +.

Keywords
Client (customer) program, server program, communications, logic
port, protocol, IP address.

4848

*

Ingeniero de sistemas, Magister en teleinformática, miembro del grupo de investigación IAFT, docente de palnta
de la Universidad Distrital Francisco José de Caldas. [email protected]

REVISTA VÍNCULOS VOL. 8 NÚMERO 2 JULIO - DICIEMBRE DE 2011

HÉCTOR JULIO FÚQUENE ARDILA

V Í N C U L O S
JULIO - DICIEMBRE DE 2011
V O L U M E N 8
N Ú M E R O 2

Introducción
La comunicación entre entidades abstrac-
tas (PCs) se logra utilizando diferentes téc-
nicas, una de ellas es utilizando sockets,
que consiste en confi gurar una red cliente
servidor para establecer el fl ujo de infor-
mación entre transmisor y receptor.

Es posible utilizar un protocolo orientado
a conexión como TCP (Transfer Control
Protocol) o uno no orientado a conexión
como UDP (User Datagram Protocol), la
diferencia entre los dos es la fi abilidad que
se puede garantizar con un protocolo que
garantice la conexión con el extremo recep-
tor, es decir que sea orientado a conexión.

Para que dos aplicaciones puedan inter-
cambiar información entre sí se necesita:

• Un protocolo de comunicación co-
mún a nivel de red y a nivel de trans-
porte.

• Una dirección del protocolo de red
que identifi que a cada uno de los
computadores.

• Un número de puerto que identifi que
la aplicación dentro del computador.

Los socket se utilizan para poder enviar
órdenes a un servidor que está atendiendo
nuestras peticiones. Por lo tanto, un socket
quedaría defi nido por una dirección IP (La
del equipo que actúa como servidor), un
protocolo y un número de puerto (El uti-
lizado para acceder a un servicio determi-
nado).

A su vez, los sockets están basados en el
protocolo de comunicaciones utilizado en
Internet: TCP (Transmisión Control Proto-
col).

La función del protocolo TCP es, ni más ni
menos que la de traer y llevar información
desde un servidor a un cliente y viceversa
utilizando los diferentes protocolos utiliza-
dos por cada servicio.

¿Qué son los sockets?
Podemos encontrar diferentes defi niciones,
algunas de ellas son:

Los sockets son un método de comunica-
ción entre un programa de cliente y uno
de servidor a través de una red. Un soc-
ket se defi ne como “el extremo de una co-
nexión”.

Un socket, es un método para la comuni-
cación entre un programa del cliente y un
programa del servidor en una red. Un soc-
ket se defi ne como el punto fi nal en una
conexión. Los sockets se crean y se utilizan
con un sistema de peticiones o de llamadas
de función a veces llamados interfaz de pro-
gramación de aplicación de sockets (API,
Application Programming Interface).

Un socket es también una dirección de
Internet, combinando una dirección IP (la
dirección numérica única de cuatro octetos
que identifi ca a un computador particular
en Internet) y un número de puerto (el nú-
mero que identifi ca una aplicación de In-
ternet particular)

Un socket es un punto fi nal de un enlace
de comunicación de dos vías entre dos pro-
gramas que se ejecutan a través de la red.



¿Cómo se establece

la comunicación con sockets?
El cliente y el servidor deben ponerse de
acuerdo sobre el protocolo que utilizarán.

Hay dos tipos de socket:

Orientado a conexión

Establece un camino virtual entre servidor
y cliente, fi able, sin pérdidas de informa-
ción ni duplicados, la información llega
en el mismo orden que se envía. El cliente
abre una sesión en el servidor y este guar-
da un estado del cliente.

REVISTA VÍNCULOS VOL. 8 NÚMERO 2 JULIO - DICIEMBRE DE 2011

4949

A T

I m p l e m e n t a c i ó n c l i e n t e s e r v i d o r m e d i a n t e s o c k e t s

Orientado a no conexión

Envío de datagramas de tamaño fi jo. No es
fi able, puede haber pérdidas de información
y duplicados, y la información puede llegar
en distinto orden del que se envía. No se guar-
da ningún estado del cliente en el servidor,
por ello, es más tolerante a fallos del sistema.
Lossockets no son más que puntos o meca-
nismos de comunicación entre procesos que
permiten que un proceso hable (emita o re-
ciba información) con otro proceso incluso
estando estos procesos en distintas máqui-
nas. Esta característica de interconectividad
entre máquinas hace que el concepto de soc-
ket nos sirva de gran utilidad.

Un socket es al sistema de comunicación entre
computadores, lo que un buzón o un teléfono
es al sistema de comunicación entre personas:
un punto de comunicación entre dos agentes
(procesos o personas respectivamente) por el
cual se puede emitir o recibir información.

La arquitectura cliente-servidor
Es un modelo de aplicación distribuida en el
que las tareas se reparten entre los provee-
dores de recursos o servicios, llamados ser-
vidores, y los demandantes, llamados clien-
tes. Un programa cliente realiza peticiones
a otro programa, el servidor, que le da res-
puesta. Esta idea también se puede aplicar
a programas que se ejecutan sobre una sola
máquina, aunque es más ventajosa en un
sistema operativo multiusuario distribuido
a través de una red de computadores.

En esta arquitectura la capacidad de proceso
está repartida entre los clientes y los servi-
dores. La separación entre cliente y servidor
es una separación de tipo lógico, donde el
servidor no se ejecuta necesariamente so-
bre una sola máquina ni es necesariamente
un sólo programa. Los tipos específi cos de
servidores incluyen los servidores webs, los
servidores de archivo, los servidores del co-
rreo, entre otros. Mientras que sus propósi-
tos varían de unos servicios a otros, la arqui-
tectura básica seguirá siendo la misma.

REVISTA VÍNCULOS VOL. 8 NÚMERO 2 JULIO - DICIEMBRE DE 2011

La comunicación entre procesos a través de
sockets se basa en la fi losofía cliente-servi-
dor: un proceso en esta comunicación ac-
tuará de proceso servidor creando un socket
cuyo nombre conocerá el proceso cliente, el
cual podrá “hablar” con el proceso servi-
dor a través de la conexión con dicho socket
nombrado.

El proceso crea un socket sin nombre cuyo
valor de vuelta es un descriptor sobre el
que se leerá o escribirá, permitiéndose una
comunicación bidireccional, característica
propia de los sockets. El mecanismo de co-
municación vía sockets tiene los siguientes
pasos:

• El proceso servidor crea un socket con

nombre y espera la conexión.

• El proceso cliente crea un socket sin

nombre.

• El proceso cliente realiza una petición

de conexión al socket servidor.

• El cliente realiza la conexión a través de
su socket mientras el proceso servidor
mantiene el socket servidor original
con nombre.

Es muy común en este tipo de comunicación
lanzar un proceso hijo, una vez realizada la
conexión, que se ocupe del intercambio de
información con el proceso cliente mientras
el proceso padre servidor sigue aceptando
conexiones. Para eliminar esta característica
se cerrará el descriptor del socket servidor
con nombre en cuanto realice una conexión
con un proceso socket cliente.

El Servidor

A partir de este punto comenzamos con lo
que es la programación en C++ de los soc-
kets. Se debe poseer conocimientos de C++,
de esta forma será más fácil el atender el
procedimiento a seguir.

Con C++ en Unix/Linux, los pasos que debe
seguir un programa servidor son los siguien-
tes:

5050

HÉCTOR JULIO FÚQUENE ARDILA

V Í N C U L O S
JULIO - DICIEMBRE DE 2011
V O L U M E N 8
N Ú M E R O 2

Realizar la apertura de un socket, median-
te la función socket(). Esta función devuel-
ve un descriptor de archivo normal, como
puede devolverlo open(). La función soc-
ket() no hace absolutamente nada, salvo
devolvernos y preparar un descriptor de
fi chero que el sistema posteriormente aso-
ciará a una conexión en red.

Avisar al sistema operativo de que hemos
abierto un socket y queremos que asocie
nuestro programa a dicho socket. Se con-
sigue mediante la función bind(). El siste-
ma todavía no atenderá a las conexiones
de clientes, simplemente anota que cuando
empiece a hacerlo, tendrá que avisarnos. Es
en esta llamada cuando se debe indicar el
número de servicio al que se quiere aten-
der.

Avisar al sistema de que comience a aten-
der dicha conexión de red. Se consigue me-
diante la función listen(). A partir de este
momento el sistema operativo anotará la
conexión de cualquier cl
  • Links de descarga
http://lwp-l.com/pdf16955

Comentarios de: Implementación cliente servidor mediante sockets (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad