Post on 13-Jan-2016
description
11
Chat de salónChat de salón
1.1. Enunciado del problemaEnunciado del problema
2.2. Modelo cliente/servidorModelo cliente/servidor
3.3. Protocolo de comunicación con el Protocolo de comunicación con el servidor.servidor.
4.4. Chat privadoChat privado
5.5. Diseño del clienteDiseño del cliente
6.6. Diseño del servidorDiseño del servidor
22
Un chat de salón es un lugar virtual en internet donde varios participantes pueden conversar.
Un chat se compone por dos tipos de programas: el servidor y el cliente.
El servidor proporciona el servicio: acepta y gestiona participantes, y se encarga de la replicación y recepción de los mensajes.
El cliente envía mensajes al servidor para que sean enviados al resto de participantes. En el caso de solicitar un chat privado con otro participante, la transferencia de mensajes será directa entre los dos.
1 . Enunciado del problema
Chat de salón
33
El modelo de la aplicación es el de cliente/servidor en el chat general y el protocolo que se va a utilizar es TCP.
Por otro lado cuando se establece una comunicación privada, el protocolo usado será UDP, con la finalidad que el alumno se familiarice con los dos protocolos.
2. Modelo cliente/servidor
Cliente/servidor
44
3 . Protocolo de comunicación con el servidor
Establecimiento de la comunicación
Servidor
Ana
Paco
Pepe
Nuevo 0+“Paco”
1+“ko”
1. El nuevo participante envía el nick, mediante el texto ”Nombre” al servidor, si ya existe otro participante con el mismo nick envía “KO”, en caso contrario envía OK.
55
Después del “OK”, el servidor nos pasa la lista de nicks de la sala y al resto de participantes les avisa de que hemos entrado, para que nos añadan a su lista.
3 . Protocolo de comunicación con el servidor
Establecimiento de la comunicación
66
3 . Protocolo de comunicación con el servidor
Establecimiento de la comunicación
Servidor
Ana
Paco
Pepe
Nuevo
“0”+:“Pedro”
“1”+“OK”
“2”+“Ana”+”.”+“Paco”+”.”+“Pepe”+”.”+“Pedro”
“4”+“Pedro”
“4“+”Pedro”
“4”+ “Pedro”
77
3 . Protocolo de comunicación con el servidor
Escribir un mensaje Cuando queremos mandar un mensaje al
chat, se lo mandamos al servidor y este lo difunde a todos los participantes incluido nosotros mismos
Servidor
Ana
Paco
Pepe
Pedro “3”+“Pedro: Hola”
“3”+“Pedro: Hola”
“3”+“Pedro: Hola”
“3”+“Pedro: Hola”
“3”+“Pedro: Hola”
88
3 . Protocolo de comunicación con el servidor
Desconectarse• Cuando alguien quiera desconectarse manda la
servidor el mensaje “7”+“adios”, y este lo notifica al resto enviando “5”+ el nick de quien se fue. Si el servidor se desconecta manda el mensaje “6”+”adios”.
Servidor
Ana
Paco
Pepe
Pedro 7+“adios”
“5”+”Pedro”
“5”+”Pedro”
“5”+”Pedro”
99
Esta parte es opcionalEsta parte es opcional El único que sabe las direcciones IP de cada cliente es El único que sabe las direcciones IP de cada cliente es
el servidor. el servidor. Para establecer un privado, tenemos que decirle al Para establecer un privado, tenemos que decirle al
servidor con quien queremos hablar, que se trata de servidor con quien queremos hablar, que se trata de un privado y cual es el puerto de escucha (puerto un privado y cual es el puerto de escucha (puerto UDP ), el servidor le dirá a ese cliente que queremos UDP ), el servidor le dirá a ese cliente que queremos establecer un privado. Y le dará nuestros datos.establecer un privado. Y le dará nuestros datos.
Protocolo con el servidorProtocolo con el servidor– Le enviamos al servidor “8” y nuestro puerto de Le enviamos al servidor “8” y nuestro puerto de
recepción y el nick del participante con el que nos recepción y el nick del participante con el que nos queremos conectarqueremos conectar
– El servidor busca a esa persona y le envía “9” y los El servidor busca a esa persona y le envía “9” y los datos del participante que se quiere conectar con él.datos del participante que se quiere conectar con él.
4. Chat privado
Establecer un privado
1010
A continuación el cliente que recibe A continuación el cliente que recibe la petición le enviará un primer la petición le enviará un primer paquete ya directamente al cliente paquete ya directamente al cliente privado con la cadena “A” + el privado con la cadena “A” + el puerto por el que realizará la puerto por el que realizará la recepción. recepción.
Mediante el mensaje “B”+cadena se Mediante el mensaje “B”+cadena se intercambian mensajes y mediante intercambian mensajes y mediante “C”+”fin” se cierran las conexiones“C”+”fin” se cierran las conexiones
4. Chat privado
Establecer un privado
1111
4. Chat privado
Establecer un privado
AnaPaco
“8”+Ana+”puerto:”+29999
192.1.1.2Contexto.puerto=29999
“9” + ParticipanteUDPNick=PacoIP=192.1.1.2Puerto=29999
Verde: TCPAzul: UDP
“A”+Ana+30001
Servidor
Conexión Establecida
Contexto.puerto=30001