sYnced Posted December 30, 2016 at 12:49 AM Report Share #601575 Posted December 30, 2016 at 12:49 AM Boa noite, Bem pessoal vou tentar ser direto no assunto, eu tinha tudo funcional até hoje ter feito algumas modificações hoje, depois disso o meu código não entrou mais dentro do ciclo while: vou por aqui um exerto do código, se alguém me conseguir ajudar agradeço: void SendMsg(int sock) { //zona de variáveis int tM = 4096; int n; int logged = 0; char buffer[tM]; char nickname[tM]; bzero(buffer, tM); //enviar catacter de comando para o utilizador write(sock, "Efectue login por favor\r\n", 24); //establecer um nickname read(sock, buffer, tM); printf("%s", buffer); int sc = strncmp(buffer, "utilizador",10); //verificar se quer criar utilizador int criaU = strncmp(buffer, "criautilizador", 14); if(criaU == 0) { //o utilizador é criado //código aqui printf("Utilizador criado com sucesso"); logged = 1; } if((sc < 0 || sc > 0) && logged != 1) { write(sock, "Erro ao efetuar login", 21); } else { logged = 1; } if(logged == 1) { char *temp = devString(buffer); if(temp[0] == ' ') temp++; memset(nickname, 0, LEN); strcpy(nickname, temp); //poder receber mensagens do utilizador até que o mesmo queira que pare write(sock, "% ", 2); while(1) { printf("entrou no while"); char *resultado; char fecho[8] = "termina"; int i = 0; strcpy(resultado, buffer); //Primeiro comando recebido n = read(sock, buffer, tM); int result = strncmp(resultado, fecho, 7); printf("%d", n); if(n < 0) { printf("Erro a enviar a mensagem\r\n"); } if(result == 0) { n = write(sock, "Boa viagem\r\n", 10); break; } n = write(sock, "% ",2); //aqui executamos as restantes apps int casos[6]; casos[0] = strncmp(buffer, "entregamsg", 10); casos[1] = strncmp(buffer, "consultamsg", 11); casos[2] = strncmp(buffer, "retiramsg", 9); casos[3] = strncmp(buffer, "removeutilizador", 16); casos[4] = strncmp(buffer, "listautilizador", 15); casos[5] = strncmp(buffer, "utilizador", 10); //case switch aqui int helper = -1; for(; i < sizeof(casos);i++) { if(casos[i] == 0) helper = casos[i]; } if (helper != -1) { switch(helper) { case 0: //codigo de enviar msg break; case 1: //consultar msg break; case 2: //retira msg break; case 3: n = write(sock,"Impossível remover utilizador depois de logado", 47); break; case 4: //lista utilizadores break; case 5: n = write(sock, "Impossível executar este comando depois de logado", 52); break; default: n = write(sock, "Comando inválido", 60); break; } } printf("%s",buffer); memset(buffer, 0, LEN); } } } Link to comment Share on other sites More sharing options...
sYnced Posted December 30, 2016 at 01:36 AM Author Report Share #601577 Posted December 30, 2016 at 01:36 AM J]a descobri o erro, tinha a haver com a vari]avel resultado Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 09:52 AM Report Share #601582 Posted December 30, 2016 at 09:52 AM se foste directo ao assunto, então eu também vou ser : resolver problemas nunca é olhar para um excerto de código, qual seja o tamanho deste. é olhar para os sintomas (o que faz e o que deveria fazer) e só depois olhar para o código. o que quero dizer é que a forma que apresentas o problema nunca levaria a uma resposta satisfatória por parte de alguem do fórum IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now