Práctica 8

0 views
Skip to first unread message

Joshua Mendoza

unread,
Oct 17, 2011, 12:31:58 PM10/17/11
to redes 2012-1
Qué tal Michael,

Tengo dudas acerca de la práctica 8 porque la verdad la redacción me
hizo bolsas:

> Para pedir tu nickname como cliente no sería:
set.********
en vez de
get.********
?

> Entonces al servidor siempre se le envían :comandos <mensaje>, no? => los :comandos permitidos sólo son
set.********
lst
get.******** mi_mensaje_privado_arbitrario
@all mi_mensaje_publico

> Sin embargo, las respuestas del servidor son un tanto ambiguas ya que en una parte dices que responsa
nickname.mensaje[\t]
y en otro que responsa
@nickname hola que tal\t <- aquí no mencionas explicitamente
el \t pero lo asumo por todo lo que dices antes

> Otra respuesta es ésta, la cuál creo que no tiene problema:
nickname dijo: mensaje <- respuesta directa de @all mensaje

Supongo que este protocolo es sencillo porque está orientado a texto
pero creo que entre menos ambigüedad haya, más fácil será
implementarlo.

Saludos

Michael Cruz

unread,
Oct 17, 2011, 2:38:27 PM10/17/11
to redes-...@googlegroups.com
Para pedir es get
Para agregar al chat es set

El tabulador solo se usa en los mensajes privados para distinguirlo



En esta parte es lo que va a imprimir el cliente, lo que responde el servidor es nickname.mensaje (con tab es privado)
el cliente imprime nickname dijo: mensaje

Juan Rodriguez

unread,
Oct 17, 2011, 6:31:01 PM10/17/11
to redes-...@googlegroups.com
Hola que tal Michael, basandonos en la practica anterior entonces para
agregar un usuario al servidor se hace mediante set.nickname,
y para enviar un mensaje privado el cliente debe enviar el comando
get.nickname.mensaje\t, y para cuando va dirigido a todos los clientes
el comando @all.mensaje?

entonces me parece que el tabulador \t al final de un mensaje privado
no es necesario ya que puedes distinguir entre un mensaje privado y no
que no lo es, por el comando get o @all. bueno esṕero tu respuesta

--
Juan Manuel Rodriguez Martinez.

Michael Cruz

unread,
Oct 17, 2011, 6:34:52 PM10/17/11
to redes-...@googlegroups.com
@all no se envia al server, el cliente lo cambia por un get.nickname.mensaje y eso es lo que enviá, lo cual hace que la implementación anterior prevalezca sin muchos cambios.

el @all es la interfaz para el usuario.

Michael Cruz

unread,
Oct 17, 2011, 6:35:47 PM10/17/11
to redes-...@googlegroups.com
Vayan ideando la implementación p2p, sera transformar ese chat a p2p.

Michael Cruz

unread,
Oct 17, 2011, 6:36:25 PM10/17/11
to redes-...@googlegroups.com

dislexia perdón, su practica siguiente será transformar ese chat a p2p.

Axel Becerril

unread,
Oct 17, 2011, 11:02:33 PM10/17/11
to redes-...@googlegroups.com
No hay mensajes sobre el estado de otros clientes o mensajes de error. Un cliente sólo tiene una manera de saber si algún otro se ha (des)conectado, y es pidiendo periódicamente la lista de participantes con lst y verificando si la nueva lista ha cambiado con respecto a la anterior. ¿Estoy en lo correcto?

Michael Cruz

unread,
Oct 17, 2011, 11:07:09 PM10/17/11
to redes-...@googlegroups.com
así es.

Axel Becerril

unread,
Oct 19, 2011, 4:32:25 AM10/19/11
to redes-...@googlegroups.com
Sobre los mensajes que el servidor recibe. Un usuario manda:
@foo_dude Lorem ipsum

entonces, el cliente manda:
get.foo_dude.Lorem ipsum\t

al servidor ¿correcto? Pero si el usuario manda :
@all Dolor sit amet

¿Qué manda el cliente al servidor? ¿Acaso
get.<destinatario>.Dolor sit amet

para cada destinatario en la lista que pidió al servidor? Es decir, ¿un mensaje a cada usuario conocido sin el \t al final?

~~~~~~~

Sobre los mensajes que el servidor envía. Si el usuario foo_dude quiere enviar un mensaje al usuario some_guy, entonces, el cliente de foo_dude manda
get.some_guy.<Mensaje>\t

al servidor. Y entonces el servidor procesa el mensaje y manda al cliente de some_guy el mensaje
get.foo_dude.<Mensaje>\t

Básicamente, el servidor toma el segundo campo, que es el destinatario, y con él determina a quién mandar el mensaje. Luego reemplaza ese campo con el receptor y así lo manda al cliente destinatario. ¿Entendí bien?

--
Axel Eduardo Becerril Nájera

Axel Becerril

unread,
Oct 19, 2011, 4:34:53 AM10/19/11
to redes-...@googlegroups.com
Fe de errata:

El último párrafo debe decir:

Básicamente, el servidor toma el segundo campo, que es el destinatario, y con él determina a quién mandar el mensaje. Luego reemplaza ese campo con el remitente y así lo manda al cliente destinatario. ¿Entendí bien?

Michael Cruz

unread,
Oct 19, 2011, 1:08:29 PM10/19/11
to redes-...@googlegroups.com

sip sip sip sip sip y sip.
Reply all
Reply to author
Forward
0 new messages