Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Problema em C

$
0
0
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); } } }

Viewing all articles
Browse latest Browse all 11336

Trending Articles