os pongo el codigo para que veais un poco a lo que me refiero:
Código:
entiendo que esto se solucionaría con varios hilos de ejecución lo que llamamos thread pero no se nada de la sintaxis en c en windowswhile(1) { for(i=0;i<conex;i++) { datos[i]=RecivirDatos(comunicacion,len,Buffer, i); if (datos[i]>0) //si seguimos conectados { Buffer[datos[i]]=0; //le ponemos el final de cadena printf("%s(%d):%s",inet_ntoa(local.sin_addr),i,Buffer); //imprimimos la cadena recibida } else { printf("Cliente Numero %d Desconectado\n",i); // printf("I %d, conex %d\n",i,conex); /*while(i<conex) { comunicacion[i]=comunicacion[i+1]; i++; } conex--; */ } AceptarConexiones(&len,&sock,local,comunicacion,i+1,&conex); } } //Funciones void AceptarConexiones(int *len,SOCKET *sock,struct sockaddr_in local,SOCKET *comunicacion,int i,int *conex) { int len2; *len=sizeof(struct sockaddr); len2=*len; comunicacion[i]=accept(*sock,(sockaddr*)&local,&len2); *len=len2; if(comunicacion[i]==INVALID_SOCKET) printf("No puedo aceptar\n"); else (*conex)++; }
Espero que me puedan ayudar o iluminarme con un solución mas fácil
Un cordial saludo a todos