Sokets

Solo disponible en BuenasTareas
  • Páginas : 5 (1100 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de noviembre de 2011
Leer documento completo
Vista previa del texto
INSTITUTO TECNOLOGICO DE LA PIEDAD

ING ELECTRONICA

MATERIA
PROGRAMACION 2

TRABAJO
IMPLEMENTASION DE SOCKETS EN C#

ALUMNO
ERNESTO DIAZ RAMOS

16/ DE NOVIEMBRE/ DEL 2011
Sockets en C#

INDICE:

* ¿Qué es un Socket?
* Teoría sobre Sockets en C#
* Programando una aplicación Cliente-Servidor
* Implementación del protocolo HTTP en C# mediante Sockets
*Despedida

. ¿Qué es un socket?

Citar
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 y un número de puerto.

Es decir, es un método para que aplicaciones situadas en distintosordenadores (o no, pueden comunicarse perfectamente aplicaciones situadas en el mismo ordenador) puedan comunicarse. Para ello, se necesita la IP, un Puerto y un Protocolo. Nosotros utilizaremos el protocolo TCP.

Básicamente al socket le pasaremos la IP a conectar, el puerto a conectar/escuchar y el protocolo, aparte de otras cosas, pero lo importante es eso.

. Teoría sobre Sockets en C#

Esteapartado es un "pasos previos" para hacer la aplicación del siguiente capitulo.

Para indicar que queremos trabajar con sockets, tenemos que agregar las siguientes líneas en el Using:
Código:
using System.Net;
using System.Net.Sockets;

Asi le indicamos que trabajaramos con sockets.

Para conseguir la dirección del IP se usa el IPAddress, un ejemplo y luego lo explico:Código:
IPAddress direc = Dns.GetHostEntry("localhost").AddressList[0];

Lo que se hace aquí es poner dentro de direc la IP de localhost, eso no se guarda ni en int ni en long ni en string, se guarda en IPAddress, para luego usarse en la siguiente instrucción:
Código:
IPEndPoint Ep = new IPEndPoint(direccion, puerto);

NOTA: Aunque se trabaje con números,esos números de la IP se tienen que pasar a IPAddress, ya que como int no lo va a tomar.

Donde dirección es lo que habíamos conseguido antes con IPAddress, y en puerto le ponemos un int que queramos, por ejemplo:
Código:
IPEndPoint Ep = new IPEndPoint(direc, 12345);

Lo siguiente es crear el socket con lo obtenido hasta ahora. Lo llamaremos asi:
Código:
Socketsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Dividámoslo por argumentos:

AddressFamily.InterNetwork: Esto indica que la dirección es para una IP v4 (xxx.xxx.xxx.xxx)

SocketType.Stream: Es el tipo de socket, hay varios tipos, para mas información sobre estos consultad la información que les da el entorno de programación.

ProtocolType.Tcp: Es elprotocolo que se usara, también hay vario, para mas información consulten el entorno de programación.

Bien, una vez echo esto ya tenemos el socket apunto para ser usado. Para usarlo, vámonos directamente a la practica, es decir, al punto siguiente.

4. Programando una aplicación Cliente-Servidor

Con lo de capitulo anterior agregado a nuestra futura aplicación, ya estamos listos paraempezar a explicar todo lo que falta.

En este capitulo programaremos un servidor, con el cual nos conectaremos con el NetCat para comunicarnos con nuestra aplicación.

Al código que teníamos antes le agregamos estas líneas:
Código:
socket.Bind(Ep);
socket.Listen(100);

Lo que hacemos aquí es proceder a escuchar por el puerto descrito en Ep (recuerden que era el 12345). Luego enla siguiente línea, el parámetro de Listen establece la longitud máxima de la cola de conexiones pendientes que puede tener el servidor antes de empezar a rechazar conexiones.

La siguiente línea a agregar es la siguiente:
Código:
Socket handler = socket.Accept();

Esta línea indica que el servidor queda esperando una llamada para luego aceptarla.

Eso era la principal...
tracking img