Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CLIENTE/SERVIDORES
INGENIERA INFORMTICA
UNIDAD II
Programacin Cliente-Servidor de Bajo Nivel: sockets y
canales
Socket
Qu
es un socket?
una red.
Dominios de comunicacin.
Los sockets se crean dentro de un dominio de comunicacin, igual que un archivo se crea
dentro de un filesystem.
El dominio de comunicacin nos dice dnde se encuentran los procesos que se van a
intercomunicar.
Si los procesos estn en el mismo sistema, el dominio de comunicacin ser AF_UNIX, si los
procesos estn en distintos sistemas y stos se hallan unidos mediante una red TCP/IP, el
dominio de comunicacin ser AF_INET.
Cabe aclarar que existen otros dominios de comunicacin.
Los sockets no se han diseado solamente para TCP/IP. La idea original fue que se usase la
Sockets Raw
Sockets raw no son para el usuario ms comn, son provistos principalmente para
aquellosinteresados en desarrollar nuevos protocolos de comunicacin o para hacer uso de
facilidades ocultas de un protocolo existente.
Byte order
Network byte order y Host byte order son dos formas en las que el sistema puede almacenarlos datos
en memoria. Estn relacionadas con el orden en que se almacenan los bytes en la memoria RAM.
Si al almacenar un short int (2 bytes) o un long int (4 bytes) en RAM, en la posicin ms alta se
almacena el byte menos significativo, entonces se trata de network byte order, caso contrario es host
byte order ..
Esto depende del microprocesador que se est utilizando, podramos estar programando en un
sistema host byte order o network byte order, pero cuando enviamos los datos por la red deben ir en
un orden especificado, si no enviaramos todos los datos al revs. Lo mismo sucede cuando recibimos
datos de la red, debemos ordenarlos al orden que utiliza nuestro sistema. Debemos cumplir las
siguientes reglas:
Todos los bytes que se transmiten hacia la red, sean nmeros IP o datos, deben estar network byte
order.
Todos los datos que se reciben de la red para ser utilizados en el procesador podran convertirse a host
byte order, dependiendo de la arquitectura del computador.
CREACIN DE UN SOCKET
Para que una persona pueda recibir llamadas debe tener instalado un telfono, para
poder realizar una conexin se debe crear un socket.
Los sockets se crean llamando a la funcin socket(), esta funcin retorna un
descriptor de socket, que es tipo int, como si fuese un manejadro de archivo (file
handler). Si hubo algn error, socket() retorna 1 y la variable global errno se
establece con un valor que indica el error que se produjo.
Donde:
sockfd, es el descriptor de socket devuelto. Que luego se utilizar para conectarse,
recibir conexiones, enviar y recibir datos, etc. dominio, dominio donde se realiza la
conexin. Para este tutorial siempre ser AF_INET. tipo, podr ser SOCK_STREAM o
SOCK_DGRAM o SOCK_RAW; dependiendo del tipo de socket que deseamos crear.
protocolo, 0 (cero, selecciona el protocolo ms apropiado).
Cliente Servidor
TCP simple.
Referencias
http://www.codigojavaoracle.com/hardware/
arquitectura/definicion-de-socket/