Está en la página 1de 41

Desarrollo de Aplicaciones I

Sockets
Mgter. Mgter . Jos Sulla

Agenda
Introduccin. Cliente / Servidor. S k t Sockets. TCP/UDP. Direcciones IP. Resumen.

Introduccin
Las operaciones de comunicacin entre computadoras lleva a tratar con los temas de redes (cliente/servidor), estos se puede lograr mediante el uso de socket.

Cliente / Servidor
El cliente solicita alguna accin a ejecutarse; El servidor ejecuta la accin y responde al cliente. cliente Una ejemplo de este modelo de peticin respuesta es entre un Web browsers y un Web servers.

Cliente / Servidor
Las capacidades fundamentales de redes se definen por las clases e interfaces del espacio de nombres System.Net.Sockets. A travs de este espacio de nombres, C# permite las comunicaciones basadas en socket, p de tal forma que los desarrolladores puedan ver a las redes como si este fuera un fichero I/O.

Sockets
Son el p par de nmeros q que designan g una direccin IP y un puerto. En definitiva, son una identificacin de un punto de comunicacin al que puede acceder un p proceso. proceso .

Sockets
Aplicacin p API de Windows Sockets p - TCP y UDP Transporte Red IP Enlace - Tarjetas de red Utilizar una API de Windows Sockets, libera al programador de tratar con los detalles de cmo se pasan los paquetes de informacin entre las capas inferiores i f i inferiores. .

Sockets

Servidor

Cliente

Aplicacin Transporte Red Enlace

Aplicacin Transporte Red Enlace

Sockets
Un socket p permite conectarse a un equipo q p remoto e intercambiar datos con el protocolo de control de transmisin orientada a la conexin (TCP TCP) ) o con el protocolo de datagramas de usuario no orientada a la conexin (UDP UDP) ).

Sockets
Cliente C e te 1 Servidor
Socket 1 Socket 2 Socket 1 Socket 2 Socket 3 Socket 3

Cliente 2

TCP
TCP (Transmission Control Protocol) facilita la transmisin stream-socket. Con los stream sockets, sockets un proceso establece una conexin a otro proceso. Mientras la conexin esta abierta, abierta los datos fluyen entre los procesos de forma continua. Por esta razn, los stream sockets se dicen que proveen un servicio orientado a la conexin.

TCP

UDP
UDP (User Datagram Protocol) es el protocolo usado para habilitar datagramas sockets, es una una conexin orientada al servicio y no garantiza que el paquete llegar a su destino. De hecho, , los p paquetes q pueden p p perderse o duplicarse adems de llegar fuera de secuencia.

UDP

Direcciones IP
Los nodos de una red IP se conocen como host y pueden ser tanto origen como destino de datos. datos. Todos los nodos de una red tienen una direccin IP q que los identifican dentro de la red de forma nica y que, a su vez, los clasifica como pertenecientes a una determinada zona dentro de la red red. . Las direcciones IP se definen como enteros de 32 bits bits. .

Direcciones IP
IP define cuatro clases de direcciones IP que se identifican de la siguiente forma: forma:
Direccin IP: IP: bits de prefijo | bits de ident. ident. de red | bits de host
Clase A B C D prefijo 0 10 110 1110 bits red 7 14 21 28 bits host 24 16 8 0 Descripcin 27 redes de 224 ordenadores 214 redes de 216 ordenadores 221 redes de 28 ordenadores 228 redes

Direcciones IP
La direccin 127. 127.0.0.1 (localhost) est reservada para permitir el funcionamiento del protocolo dentro del mismo ordenador. ordenador. Esto permite que podamos desarrollar programas basados en red o habilitar el p g funcionamiento de programas que g necesitan red, aunque no dispongamos de tarjeta de red en el ordenador. ordenador.

Sistemas de Nombres de Dominio (DNS)


DNS (Domain Name System) surgi como consecuencia de dos factores fundamentales fundamentales: : la necesidad de identificar host de forma amigable y la expansin del uso de internet. internet. Ejemplo: Ejemplo: IP 192 192. .168 168. .4.1 DNS sis sis. .ucsm ucsm. .edu. edu.pe

Servidor
Con TCP, un servidor espera por una peticin de conexin de un cliente. Una vez recibido la peticin, peticin el servidor establece una conexin con el cliente. El servidor luego usa esta conexin para manejar futuras peticiones desde el cliente y para enviar datos al cliente.

Servidor
Para establecer un simple servidor con TCP y stream sockets en C# requiere 5 pasos. Crear un objeto de la clase TcpListener, (System.Net.Sockets). Esta clase representa un stream socket TCP por medio del cual un servidor puede escuchar por las peticiones. La llamada al TcpListener es como:
TcpListener server = new TcpListener( port );

1 1.

Servidor
2.

3.

Llamar al mtodo Start de TcpListener, lo que ocasiona que el objeto TcpListener comience a escuchar por las peticiones de conexin. Establece la conexin entre el servidor y el cliente. Socket connection = server.AcceptSocket(); server AcceptSocket();

Servidor
4.

Es la fase de procesamiento, en el cual el servidor y el cliente con TCP se comunican va los mtodos Receive y Send de la clase Socket. mientras que con UDP se utilizan los mtodos SendTo y ReceiveFrom, UDP y los datagram sockets pueden ser usados cuando no existe conexin.

Servidor
5.

Es la fase de conexin finalizada, el servidor usa el mtodo Close del objeto Socket para cerrar la conexin. La mayora de servidores retorna al paso 2 (Escucha).

Cliente
Para crear un simple cliente con TCP y stream sockets en C# se requiere 4 pasos. Se crea un objeto de la class TcpClient (System.Net.Sockets) para conectar al servidor. Esta conexin se establece a travs del mtodo Connect de la clase TcpClient.
TcpClient p client = new TcpClient(); p () client.Connect( serverAddress, serverPort );

1 1.

Cliente
2.

3.

El TcpClient usa el mtodo GetStream para obtener un Network-Stream y pueda escribir y leer del servidor. En esta fase, el cliente usa los mtodos Read, y , Write y WriteByte y de la clase ReadByte, NetworkStream que se pueden usar para la salida o entrada individual de bytes o conjunto de bytes desde o hacia el servidor.

Cliente
4.

El cliente cierra la conexin llamando al mtodo Close de NetworkStream. Luego, el cliente llama al mtodo Close de la clase TcpClient para terminar la conexin TCP .

Esquema CC-S
Servidor Crear el socket Establecer parmetros p Escuchar peticiones de conexin y guardarlas en una cola de conexiones pendientes Extraer la primera conexin Pendiente de la cola Cliente

Crear el socket

Esquema CC-S
Servidor Si no hay conexiones pendientes esperar Lectura de la peticin de servicio Procesamiento de la peticin Envo de los datos Resultantes al cliente Liberar la conexin Lectura de la respuesta dada por el servidor Liberar la conexin Establecer conexin Cliente Establecer parmetros y solicitar conexin

Peticin de servicio

Peticiones y respuestas

Ejemplo

Servidor

Servidor

Servidor

Servidor

Servidor

Cliente

Cliente

Cliente

Cliente

Ejemplo

Resumen
El cliente solicita alguna accin a ejecutarse; El servidor ejecuta la accin y responde al cliente. El socket es la identificacin de un punto de comunicacin i i al l que puede d acceder d un proceso. proceso. TCP (Transmission Control Protocol) facilita la transmisin stream stream-socket socket. UDP (User Datagram Protocol) es el protocolo usado para habilitar datagramas sockets.

Preguntas
1. 2. 3 3. 4.

Cmo funciona el modelo Cliente/Servidor? / Qu son los socktes? Qu es TCP? Qu es UDP?

También podría gustarte