menú
¿Música de YouTube sin molestos comerciales? ¡Ahora es posible!
TubeFiesta es una aplicación que te permite reproducir música de YouTube como un reproductor tradicional.
Crear listas, reproducción aleatoria, repetir, y hasta exportar el video a otra pantalla.
Conocer más Ir a tfiesta.com

Tutorial de sockets en c# con ejemplos - Parte 1

Publicado el 28/05/2015 | 6891 visitas

Los sockets son un método de comunicación, por el cual dos computadores pueden establecer comunicación a través de Internet. Esta vez vamos a seguir una serie de artículos en los que escribiré sobre esta forma de comunicación, la cual nos servirá para conectar dos o más aparatos conectados a la red, incluso si no comparten el mismo sistema operativo. Por ejemplo, podríamos crear un chat entre un dispositivo móvil Android y un computador en Windows.

Hace algunos meses publiqué un tutorial de hilos en C#, el cual ha tenido buena acogida por los lectores del blog e Internet en general, esta vez voy a escribir sobre un tema también muy utilizado con Hilos y antes de continuar leyendo, te sugiero revisarlo, ya que en este tutorial (de la parte 2 hacia adelante) vamos a ver bastante de hilos.

tutorial sockets c#

Concepto y funciones

Básicamente parte de la necesidad de conectar dos aparatos conectados en una red, ambos equipos deben estar identificados en dicha red, generalmente con una dirección IP, y uno de ellos debe iniciar la conexión con a su otro extremo enviando un paquete de datos ordenado.

Para establecer una conexión con un punto extremo es necesaria una dirección IP y un puerto, el puerto, como su nombre lo indica es una puerta de entrada y/o salida de datos y se identifica por medio de un número comprendido entre 1 y 65525.

Los sockets generalmente están siendo utilizados en las siguientes aplicaciones:

  • Chats
  • Seguimiento satelital por medio de rastreadores GPS
  • HTTP (protocolo de navegación en Internet)
  • Streaming de audio y video

Cuando recibes una notificación de facebook, whatsapp, eres cliente de una aplicación con Sockets.

Ya que no ahondaremos en el tema teóricamente, les recomiendo leer esta página si tienes dudas o quieres conocer con mayor detalle.

Protocolos de comunicación por Sockets

Existen varios protocolos de comunicación,o formas de "hablar" por sockets, cada cual con sus características, ventajas y desventajas. A continuación indico los dos protocolos en los que se basará este tutorial.

User Datagram Protocol (UDP)

Este protocolo se utiliza para enviar y recibir información con usuarios remotos a los que no nos interesa hacer seguimiento de entrega, ni el orden de llegada de los paquetes enviados. Es un protocolo NO orientado a conexión, es decir, no se necesita una previa identificación entre los dos puntos de acceso para poder transmitir datos.

El no necesitar confirmación de recepción de datos, hace que este protocolo tenga una mayor velocidad de transporte de datos continuos o de flujo, como por ejemplo el streaming,

Transmission Control Protocol (TCP)

Lo más característico es que es un protocolo orientado a conexión, es decir que para poder enviar o recibir un paquete de datos las dos partes deben previamente identificarse y establecer una conexión. Es un protocolo que garantiza que los datos sean transportados, haciendo que cada paquete enviado sea confirmado por el receptor y así tener la seguridad de que fue recibido. Adicionalmente garantiza que el orden de envío será el mismo orden de llegada de los paquetes.

En este protocolo son necesarios dos tipos de "usuarios", un servidor TCP y uno o varios clientes TCP. Siempre que se vaya a establecer una conexión TCP debe existir un servidor, es una máquina (programa) en un extremo del canal de comunicación que se encarga de escuchar continuamente la solicitud de conexión de otro extremo (el cliente), además es capaz de recibir varias solicitudes de conexión de diferentes clientes y generalmente lo puede hacer simultáneamente.

El protocolo TCP, por sus garantías de conexión y fiabilidad es más utilizado en chats, notificaciones en tiempo real, entre otros.

A diferencia de UDP, este no funcionaría bien para streaming por que la confirmación de datos lo hace más "lento". Cuando se hace streaming de TV en vivo, y perdemos 5 o 10 cuadros del video prácticamente no nos importa, posiblemente ni lo notemos, el flujo continuará y por esto es bueno UDP, ya que no hace confirmación de datos recibidos se ahorra un gran trabajo.

TCP por otro lado, no dejaría perder esos 5 0 10 cuadros del video, pero no vale la pena el esfuerzo de red que debe hacerse para confirmar cada paquete de datos que llega desde el servidor, sería un video lento o requeriría una cantidad de ancho de banda muy alta.

Para estar pendiente de las siguientes versiones del tutorial, subscribete!

Continúa el tutorial ...

Talvez te interese...

Tutorial de sockets en c# con ejemplos - Parte 2 - UDP
[solución] No puede obtener acceso a la página solicitada debido a la configuración de la extensión
[solución] El proveedor de almacenamiento especificado no se encuentra en la configuración
Cómo conocer si una coordenada está dentro de una zona o geocerca
blog comments powered by Disqus