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 } } }