como funciona un chat?

Publicado en 'Programación' por avatardefuego, 12 Ene 2011.





  1. avatardefuego

    avatardefuego Miembro nuevo

    Registro:
    12 Ene 2011
    Mensajes:
    2
    Likes:
    0




    hola a todos.
    estoy embarcado en un proyecto personal..
    de hacer un chat para uso personal..(en el trabajo)

    todos sabemos el "funcionamiento visual" que tiene un chat...
    pero mi pregunta esta mas abocada al tema de programacion.
    como es el algoritmo?
    donde guarda los registros de conversacion?..bd?..*.log, etc..
    metodos de envio de datos a los terminales..??..

    yo tengo ideas de como desarrollarlo.
    y hasta donde doy..es guardar las conversaciones en una bd...y limpiarla periodicamente(de forma automatica)..

    si alguien supiese ese tipo de funcionamiento de un chat
    o tiene alguna idea en cuanto a las interrogantes que tengo..
    seria de mucha ayuda su colaboracion..
    gracias...:yeah:
     


  2. achahuasoncco

    achahuasoncco Miembro maestro

    Registro:
    12 Dic 2010
    Mensajes:
    360
    Likes:
    108
    Lo primero que debes tener en cuenta para cualquier proyecto que involucre comunicaciones es la manera cómo trabajan dos dispositivos cuando se comunican. Si se trata de dos equipos que se conectan directamente a través de cualquier medio físico que puede comportarse como un puerto de comunicación (LPT, COM, USB, RJ45, etc) siempre se va a dar la configuración SERVIDOR-CLIENTE.
    Es decir, el equipo que se va a comportar como SERVIDOR va a estar siempre en espera infinita escuchando las posibles conexiones que establezca el cliente, y el funcionamiento lógico siempre implica que debe haber un servidor.
    En el caso del chat, si se van a comunicar dos máquinas de forma directa ambas deben de tener el programa de comunicación corriendo y en modo de escucha (eso ya depende de tu lenguaje de programación), además debes de tomar en cuenta el protocolo a utilizar, el IPX/SPX te permite conectarte a través del nombre (\\fulano, por ejemplo) pero el protocolo más utilizado y con bastante soporte es nuestro conocidísimo TCP/IP.
    Como ambas computadoras (A y B) tienen al programa en modo escucha imagina que la computadora A quiera establecer comunicación con la computadora B, entonces A ubica a B a través de su dirección de red, como B está en escucha infinita acepta la conexión de A y sucede que B termina siendo el SERVIDOR y A el CLIENTE, en castellano, el SERVIDOR es la computadora a la que te conectas y el CLIENTE es la máquina que se conecta al servidor. Todo lo demás es sencillo de implementar porque ambos programas todavía van a permanecer en escucha, pero como se estableció una conexión entre A y B el programa de chat crea un socket o una conexión directa para la comunicación (algo como sucede en la telefonía). A través de ese socket creado puedes transmitir mensajes entre los dos equipos.
    Como te mencioné, depende ahora del lenguaje de programación que quieras usar.
    Si quieres un chat vía web como los antiquísimos latinchat o terrachat, la mala noticia que tenemos es que los navegadores web actuales no tienen la capacidad de comportarse como servidores, por lo que necesitarías un servidor web para centralizar las comunicaciones.
    ¿En que vas a programar: Plataforma Windows o web? En web hay mayores ventajas porque esto ya viene implementado y te limitarías a usar formularios con POST y ajax para actualizar la ventanita de chat, eso sí, no aprenderías mucho.
    Como experiencia te comento que implementé un sencillo sistema para control de cabinas en el antiguo y vetusto Visual Basic 6.0. Obviamente no me salió perfecto pero me sirvió para entender cómo trabajan las redes y los sockets, terminé apagando o reiniciando máquinas de forma remota, calculaba el tiempo de consumo de internet, y me faltaba poquito para implementar el chat del administrador de cabina con el cliente. El código lo he perdido por desgracia.
    Si quieres hacerlo rápido, entonces usas html, javascript y un servidor web con php y mysql. Si quieres aprender cómo funciona impleméntalo con visual studio, java o algún lenguaje no orientado a servidor...
    También tienes a Google http://goo.gl/mRnyr (http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/chat.htm).
    Si tuviste un buen curso de redes, no habrá problemas para implementarlo y entenderlo, pero si el profesor... en el peor de los casos la ayuda será difícil de encontrar http://goo.gl/yDN0O
     
  3. avatardefuego

    avatardefuego Miembro nuevo

    Registro:
    12 Ene 2011
    Mensajes:
    2
    Likes:
    0
    gracias por la informacion.
    seguro me sera bastante util..
    y claro que me fijare en los links...:yeah::yeah:

    bueno..pienso hacerlo en C++..y la plataforma sera windows..
    anteriormente tambien hice un programa en vb6.0
    pero..las herramientas que se usan alli..socket..ya estan definidas...claro..solo fue uno que envia y recibe datos...como dices..cliente/servidor
    mi pregunta iba a ...si quiero guardar las conversaciones...como se haria eso?..

    estaba pensando hacer 2 programas distintos...sevidor y cliente
    servidor. manejara una bd
    cliente. consultara al servidor y extraera los datos que requiera..

    si tienes alguna sugerencia...te la agradesco de antemano..:yeah:
     
  4. JeSuS_Az.O

    JeSuS_Az.O Miembro de bronce

    Registro:
    2 Dic 2010
    Mensajes:
    1,430
    Likes:
    98
    E Visto Por La Web Buenos Chats Para Webs En PHP y MSQL por Privado Te Di Un Par De Links
     
Etiquetas: