Encontrar salas de chat con C#

Iniciado por TickTack, 4 Julio 2017, 16:04 PM

0 Miembros y 3 Visitantes están viendo este tema.

TickTack

Hola,

tengo una pregunta: como hacen los programas de cliente de chat para tener una lista de salas de chat? Escuchan un puerto y juntan las salas que estan abiertas a partir de ese puerto? O las salas notifican a una pagina web que esta abierta y esta pagina web pasa la informacion al cliente?

Hice un servidor de chat pero quiero que el cliente reciba esa sala en una lista Listview.

Cómo puedo hacerlo?


Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

ivancea96

En algún lugar se guarda la información de la sala. Si es en el servidor, pues el servidor tiene una lsita de salas. Si las salas las hostea un usuario, usualmente le comunicará al servidor la existencia de esa sala (salvo que al sala sea solo accesible por IP, por ejemplo). Si se lo comunica al servidor, nuevamente, el servidor tiene una lista. Puede no tener lista, hay muchas formas de hacerlo. Hazlo como mejor te venga :o

TickTack

Hola ivancea96,

Citar
Si es en el servidor, pues el servidor tiene una lsita de salas.

Como podria saber el cliente entonces, en tal caso, que sala esta abierta?

Citar
Si las salas las hostea un usuario, usualmente le comunicará al servidor la existencia de esa sala

Como podria saber el cliente entonces, en tal caso, que sala esta abierta?

Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

ivancea96

El cliente obtiene la información del servidor. Si el servidor conoce las salas, el cleinte puede hacer una petición de esas salas, y el servidor, responderle con los datos que sean.

TickTack

Cita de: ivancea96 en  4 Julio 2017, 19:59 PM
El cliente obtiene la información del servidor. Si el servidor conoce las salas, el cleinte puede hacer una petición de esas salas, y el servidor, responderle con los datos que sean.

Vale. Pero para empezar el cliente tiene que hacerle una peticion a una sala para que la sala le informe de las salas disponibles(como dijiste tu). Pero a que sala se conectara el cliente para que se informe, si todavia no sabe que salas estan disponibles y de este modo no se puede conectar?

Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

ivancea96

Cómo que una sala le informa de salas disponibles.
Es el servidor quien le informa.
El cliente debe saber en todo momento la dirección del servidor (o pedirsela al usuario, por ejemplo, como ocurre en IRC)

TickTack

Hola ivancea96,

tu te refieres a una sala que no se dedica al servicio chat sino exclusivamente al servicio de informe de salas, osea que salas estan abiertas?

Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

ivancea96

Pero qué sala. Yo hablo de un servidor. Un servidor qe se dedica a guardar salas, conectar usuarios, y todo lo que quieras.

TickTack

Hola ivancea96,

Si. Pero quien le comunicara a la sala la lista de las salas?

Supongamos en el comienzo solo hay un servidor y un cliente. Ahora de donde sabe el cliente que hay una sala activa? Si nunca se conecto a la sala y se no se puede conectar a la sala debido a que no sabe de la existencia de esa sala, el servidor tampoco puede informarle al cliente de su existencia.

Estaba con el tema de escuchar puertos UDP. Pero no se como se lo del UDP Broadcast.

Tienes una idea?


Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

ivancea96

Si el servidor tiene una lista de salas que va acumulando cada vez que un cliente le dice de crear una sala, entonces es el servidor el que le comunica al cliente las salas que hay cuando el cliente se lo pide. El cliente no tiene que estar unido a ninguna sala para saber la lista de salas que hay. El cliente está conectado al servidor, no más.