Diferencia entre revisiones de «Socket de Internet»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Afpineda (discusión · contribs.)
m Deshecha la edición 30086727 de 201.208.209.224 (disc.)
Línea 14: Línea 14:


Los ''sockets'' permiten implementar una [[arquitectura cliente-servidor]].
Los ''sockets'' permiten implementar una [[arquitectura cliente-servidor]].
La comunicación ha de ser iniciada por uno de los programas que se denomina programa ''servidor''. El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa ''cliente''.
La comunicación ha de ser iniciada por uno de los programas que se denomina programa ''cliente''. El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa ''servidor''.


Un socket es un fichero existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa
Un socket es un fichero existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa

Revisión del 16:08 29 sep 2009

Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada.

Un socket queda definido por una dirección IP, un protocolo de transporte y un número de puerto.

Explicación detallada

Para que dos programas puedan comunicarse entre sí es necesario que se cumplan ciertos requisitos:

  • Que un programa sea capaz de localizar al otro.
  • Que ambos programas sean capaces de intercambiarse cualquier secuencia de octetos, es decir, datos relevantes a su finalidad.

Para ello son necesarios los tres recursos que originan el concepto de socket:

  • Un protocolo de comunicaciones, que permite el intercambio de octetos.
  • Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo TCP/IP), que identifica una computadora.
  • Un número de puerto, que identifica a un programa dentro de una computadora.

Los sockets permiten implementar una arquitectura cliente-servidor. La comunicación ha de ser iniciada por uno de los programas que se denomina programa cliente. El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa servidor.

Un socket es un fichero existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.

Propiedades inherentes a los sockets

Las propiedades de un socket dependen de las características del protocolo en el que se implementan. El protocolo más utilizado es TCP, aunque también es posible utilizar UDP o IPX. Gracias al protocolo TCP, los sockets tienen las siguientes propiedades:

  • Orientado a conexión.
  • Se garantiza la transmisión de todos los octetos sin errores ni omisiones.
  • Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.

Estas propiedades son muy importantes para garantizar la corrección de los programas que tratan la información.

El protocolo UDP es un protocolo no orientado a la conexión. Sólo se garantiza que si un mensaje llega, llegue bien. En ningún caso se garantiza que llegue o que lleguen todos los mensajes en el mismo orden que se mandaron. Esto lo hace adecuado para el envío de mensajes frecuentes pero no demasiado importantes, como por ejemplo, mensajes para los refrescos (actualizaciones) de un gráfico..

Orígenes

En los orígenes de Internet, las primeras computadoras en implementar sus protocolos fueron aquellas de la universidad de Berkeley. Dicha implementación tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. Pronto se hizo evidente que los programadores necesitarían un medio sencillo y eficaz para escribir programas capaces de intercomunicarse entre sí. Esta necesidad dio origen a la primera especificación e implementación de sockets, también en Unix. Hoy día, los sockets están implementados como bibliotecas de programación para multitud de sistemas operativos, simplificando la tarea de los programadores.

Variantes

Existe una variante de los sockets denominada Unix domain sockets, o bien, Interprocess communication sockets (IPC sockets). Éstos se encuentran especificados en la norma POSIX y tienen como propósito la intercomunicación entre programas dentro de la misma computadora, facilitando así la optimización de recursos para este caso en concreto..

Bibliotecas de sockets

Se listan algunas de las bibliotecas de comunicaciones existentes, que utilizan los protocolos TCP y UDP para distintos sistemas operativos.

  • SolarSockets Biblioteca para C++ Multiplataforma y Mutithread, gratuita para proyectos libres. Fácil de usar y con varios Ejemplos.
  • Indy.sockets Biblioteca de código abierto para Delphi Win32/Kilyx/Free Pascal/Delphi.NET/c#/VB.NET/Mono. Implementa más de 100 protocolos (SMTP/POP3/IMAP/NNTP y un largo etcétera).
  • SDL NET Proporciona funciones y tipos de dato multiplataforma para programar aplicaciones que trabajen con redes.
  • C++ Sockets Library Esta es una biblioteca de clases en C++ bajo licencia GPL que 'mapea' el berkeley sockets C API, y funciona tanto en algunos sistemas unix como en win32.
  • GNU Common C++ Biblioteca de propósito general que incluye funciones de red.
  • HackNet Biblioteca de comunicaciones para crear juegos multiplayer.
  • DirectX - DirectPlay Simplifica el acceso de las aplicaciones a los servicios de comunicación.

Véase también

Enlaces externos