Hola a todos, estoy experimentando un poco sobre el sistema de sockets en C y he optado por la creación de un sistema de chat (por llamarlo de alguna forma)
Quiero crear un servidor que acepte mensajes de varios clientes y que luego el mensaje que le haya llegado sea enviado al resto de clientes.
Por ahora el código lo único que hace es aceptar un cliente y mandarle una respuesta (Hasta ahí he podido llegar), pero.. ¿y el resto? ¿Hay que asignar una ID a cada cliente y guardarlo en un array posteriormente? Cualquier ayuda es bien aceptada.
Ahí va la parte del código correspondiente (Estoy usando Dev-C++)
Código:
void conexion()
{
int conm;
conm=sizeof(struct sockaddr);
locsock=accept(locsock,(sockaddr*)&conexloc,&conm); // Conexion establecida
/* Aceptamos la conexión con la funcion "accept" utilizando el descriptor de fichero "locsock" para transmitir los datos entre ambas computadoras
mediante nuestra estructura "SOCKADDR_IN" definida anteriormente en "conexloc"
*/
printf("Stablishing connection... OK");
while (conm!=0)
{
conm=recv(locsock,Buffer,sizeof(Buffer),0); //recibir datos
if (conm>0)
{ //si seguimos conectados al cliente
printf("Datos recibidos: %s",Buffer);
char msj[] = Buffer;
send(locsock,msj,sizeof(msj),0); // Aquí debería enviar el mensaje de alguna forma al resto de clientes conectados
}
}
}