s_cola *ingresarClientes(int n) { int i=0; s_cola *colabanco = crearCola(); for (i = 0; i < n; i++) { s_cl *cl = crearCliente(); encolar(colabanco, cl); } return colabanco; }
int main() { printf("***************HOLA SOY UN PROCESO NODO\n****************"); t_config_nodo* arch_config; pthread_mutex_init(&numeroMap,NULL); pthread_mutex_init(&numeroReduce,NULL); printf("Cargando archivo de Configuracion\n"); arch_config= malloc(sizeof(t_config_nodo)); arch_config = leerArchivoConfig(ARCHIVO_CONFIG); int sockfs; pthread_t hiloFS; // pthread_t hiloJobs; // pthread_t hiloNodos; t_hilofs paramHiloFS; //sockfs = 1; sockfs = crearCliente(arch_config->IP_FS,arch_config->PUERTO_FS); paramHiloFS.socket = sockfs; paramHiloFS.IP_NODO = arch_config->IP_NODO; paramHiloFS.PUERTO_NODO = arch_config->PUERTO_NODO; paramHiloFS.ARCH_BIN = arch_config->ARCH_BIN; paramHiloFS.NODO_NEW = arch_config->NODO_NEW; paramHiloFS.DIR_TEMP = arch_config->DIR_TEMP; paramHiloFS.ID = arch_config->ID; pthread_create(&hiloFS, NULL, (void*)conexionFS, (void*) ¶mHiloFS); // pthread_create(&hiloJobs, NULL, (void*)conexionJobs, (void*) &arch_config->PUERTO_NODO); if (crearServerMultiHilo(arch_config->PUERTO_NODO,(void*)conexionJobs) == 0) printf("Nodo en la espera de conexiones de JOBs y otros Nodos\n"); // pthread_create(&hiloNodos, NULL, (void*)conexionNodos, (void*) &arch_config->PUERTO_NODO); pthread_join(hiloFS,NULL); //pthread_join(hiloJobs,NULL); // pthread_join(hiloNodos,NULL); //Probando un mensaje mandado del nodo al FS //send(sockfs,ip,1000 ,0); //printf("\n"); //munmap(DATOS,sizeof(DATOS)); return 0; }
void server::aceptar(){ //Aca el accept va a pisar el cli_addr y este nuevo es el sokete que lo relaciona a ese cliente //Deberia meter el nuevo thread por aca socklen_t clilen = sizeof(cli_addr); newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen); if (newsockfd < 0) { std::stringstream ss; ss <<"Server: No se pudo aceptar al cliente " << inet_ntoa(cli_addr.sin_addr) << "."; Logger::Instance()->LOG(ss.str(), ERROR); return; } if(getNumClientes() < MAX_CLIENTES) { //Mensaje connectedMessage = MessageFactory::Instance()->createMessage("", "", msgConnected);//Deprecated //sendMsg(newsockfd, connectedMessage);//Deprecated //Envio del mensaje connected dentro de crear Cliente bool playerCreated = crearCliente(newsockfd); if (!playerCreated) { std::stringstream ss; ss <<"Server: No se pudo aceptar al cliente " << inet_ntoa(cli_addr.sin_addr) << " por nombre inválido."; Logger::Instance()->LOG(ss.str(), WARN); } } else { std::stringstream ss; ss <<"Server: No se pudo aceptar al cliente " << inet_ntoa(cli_addr.sin_addr) << " por falta de capacidad."; Logger::Instance()->LOG(ss.str(), WARN); Mensaje serverFullMessage = MessageFactory::Instance()->createMessage("svfull", "", msgServerFull); sendMsg(newsockfd, serverFullMessage); close(newsockfd); return; } }