• Miércoles 20 de Noviembre de 2024, 16:25

Autor Tema:  Problema En Chat (cliente/servidor) Con Sockets  (Leído 2202 veces)

Pado

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema En Chat (cliente/servidor) Con Sockets
« en: Sábado 8 de Diciembre de 2007, 16:45 »
0
Hola,

He programado un chat en C bajo Linux, en el que consigo lo siguiente: los clientes se conectan al servidor, de manera que le mandan mensajes a este, y este los escribe en su terminal.
Bien, el servidor por cada cliente que se le conecta crea un hilo, y aparte en el principal hace los accepts.
Lo que me ocurre es que no se como puedo hacer para que el servidor, cada vez que recibe un mensaje, envie el mensaje a todos los clientes.

Si quereis para verlo mejor os puedo adjuntar el servidor.c y cliente.c

He leido mucho acerca de esto pero todavia sigo sin saber como hacerlo.

Gracias de antemo,

Jon

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Problema En Chat (cliente/servidor) Con Sockets
« Respuesta #1 en: Sábado 8 de Diciembre de 2007, 17:16 »
0
Cita de: "Pado"
Lo que me ocurre es que no se como puedo hacer para que el servidor, cada vez que recibe un mensaje, envie el mensaje a todos los clientes.
 
Seg8u recuerdo puedes definir espcios de memoria compartida (variables o arrays por ejemplo) de tal forma que el servidor coloca cada mensaje recibido en una cola de despachos, esta cola debe ser supervisada de tal manera que cada vez que exista un mensaje este debe ser notificado a los clientes, lo cual a su vez implica que por cada cliente conectado debes mantener una referencia (apuntador.. o sea necesitas una lista de apuntadores con ferencia a cada socket que valla al cliente)a cada uno de los objetos del socket para asi poder hacer la difusion  de los mensajes a cada uno de ellos
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Pado

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema En Chat (cliente/servidor) Con Sockets
« Respuesta #3 en: Sábado 8 de Diciembre de 2007, 19:54 »
0
Gracias por la ayuda, intentare hacerlo. De todas formas, ya que mi nivel de programacion es mas bien basico, agradeceria si pudieseis poner un ejemplo del servidor y cliente.

Muchas gracias,

Jon

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Problema En Chat (cliente/servidor) Con Sockets
« Respuesta #4 en: Domingo 9 de Diciembre de 2007, 15:24 »
0
hace mucho no hagos sockets para esa plataforma, dentro de mis cosas el ejemplo que enconte es de hace tiempo y es un sevidor con duatro clientes en paralelo, el programa es algo asi como un sistema de archivos dsitribuido donde cada nodo envia un archivo al sistema y este distribuye partes de la informacion en los demas nodos, luego si cada cliente quiere recuperar el archivo entonces se envia una solicitud a los demas nodos para devolverle al cliente un arhivo unico....

el porgrama a nivel de odigo apesta, pero funciona.

Si te sirve una referencia mejor y con ejemplos, busca el libro

Programacion de Sockets Linux -- Walton

Tambien hay ejemplos de threads y de procesos hijo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Pado

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema En Chat (cliente/servidor) Con Sockets
« Respuesta #5 en: Domingo 9 de Diciembre de 2007, 16:54 »
0
Muchas gracias por la respuesta. Mañana mismo si tengo tiempo me acercaré a alguna biblioteca para coger el libro.

Jon