Advertisement
Guest User

Untitled

a guest
Dec 10th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. #include "header.h"
  2.  
  3.  
  4. int efetuaLogin(char * fifoCliente){
  5. int fdLoginPedido, fdLoginResposta, pedServ, respServ, r;
  6.  
  7. pedidoLogin p;
  8.  
  9. while(access(FIFO_SERV_LOGIN,F_OK) != 0){
  10. printf("Nao existe ligacao ao servidor...\n");
  11. //refresh();
  12. sleep(5);
  13. }
  14.  
  15. fdLoginPedido = open(FIFO_SERV_LOGIN, O_WRONLY);
  16. if(fdLoginPedido == -1){
  17. printf("Erro no fifo do servidor!\n");
  18. close(fdLoginPedido);
  19. return 0;
  20. }
  21.  
  22.  
  23. //Cria fifo do cliente com identificação
  24. fdLoginResposta = open(fifoCliente,O_RDWR);
  25. if(fdLoginResposta == -1)
  26. printf("Erro no fifo do cliente!\n");
  27.  
  28.  
  29. printf("Introduza o seu username: ");
  30. scanf(" %49[^\n]", p.username);
  31.  
  32. printf("Introduza a sua password: ");
  33. scanf(" %49[^\n]", p.password);
  34.  
  35. p.clientePid = getpid();
  36.  
  37. //Manda a informaçao para o servidor
  38. pedServ = write(fdLoginPedido, &p, sizeof(p));
  39. //printf("%s\t%s\n", p.username, p.password);
  40.  
  41.  
  42. //Recebe resposta do servidor (0 ou 1)
  43. respServ = read(fdLoginResposta, &r, sizeof(int));
  44. //printf("Recebe ------> %d\n", r);
  45.  
  46. if(r == 1)
  47. printf("Login efetuado com sucesso!\n");
  48. if(r == 2)
  49. printf("Utilizador ja efetuou login!\n");
  50. else
  51. printf("Erro ao efetuar login, tente novamente!\n");
  52.  
  53.  
  54.  
  55. close(fdLoginPedido);
  56. close(fdLoginResposta);
  57.  
  58. return r;
  59. }
  60.  
  61.  
  62. /*
  63. int tabuleiro(){
  64.  
  65. int i,j,x=0, nInimigos = 0, nObjectos = 0;
  66. labirinto lab1;
  67. lab1.tamX = 20;
  68. lab1.tamY = 30;
  69. lab1.nObjectos = 50;
  70. lab1.nInimigos = 20;
  71. lab1.campo = (int **)malloc(lab1.tamX * sizeof(int *));
  72.  
  73. if(lab1.campo == NULL){
  74. printf ("Erro: Memoria Insuficiente");
  75. return 0;
  76. }
  77.  
  78. for(i=0;i<lab1.tamY;i++){
  79. lab1.campo[i] = (int *) malloc(lab1.tamY * sizeof(int));
  80. if (lab1.campo[i] == NULL) {
  81. printf ("Erro: Memoria Insuficiente");
  82. return 0;
  83. }
  84. }
  85. //Campo inicial
  86. for(i=0;i<lab1.tamX;i++){
  87. for(j=0;j<lab1.tamY;j++){
  88. if(i==(lab1.tamX-1) || j==(lab1.tamY-1) || i==0 || j==0){
  89. lab1.campo[i][j] = 2;
  90. }
  91. else if(i%2==0 && j%2==0){
  92. lab1.campo[i][j] = 2;
  93. }
  94. else{
  95. x = rand() % 101;
  96. //system("pause");
  97. if(x>=50)
  98. lab1.campo[i][j] = 0;
  99. else if(x<50)
  100. lab1.campo[i][j] = 1;
  101. }
  102.  
  103. printf("%d", lab1.campo[i][j]);
  104. }
  105. printf("\n");
  106. }
  107. nInimigos = lab1.nInimigos;
  108. nObjectos = lab1.nObjectos;
  109. //campo com objectos e inimigos
  110. do{
  111. for(i=0;i<lab1.tamX;i++){
  112. for(j=0;j<lab1.tamY;j++){
  113. if(lab1.campo[i][j]==0){
  114. x = rand() % 101;
  115.  
  116. if(x>=0 && x<=5 && nInimigos>0){
  117. lab1.campo[i][j] = 4;
  118. nInimigos--;
  119. }
  120. else if(x>5 && x<= 15 && nObjectos >0){
  121. lab1.campo[i][j] = 3;
  122. nObjectos--;
  123. }
  124. }
  125. }
  126. }
  127. }while(nObjectos>0 && nInimigos>0);
  128. printf("\n\n\n");
  129. //Imprime campo
  130. for(i=0;i<lab1.tamX;i++){
  131. for(j=0;j<lab1.tamY;j++){
  132. printf("%d", lab1.campo[i][j]);
  133. }
  134. printf("\n");
  135. }
  136. return 0;
  137. }
  138. */
  139.  
  140. void menu(char * fcliente){
  141.  
  142. int op, returnLogin = 0;
  143.  
  144.  
  145. do{
  146. printf("\n***** MENU PRINCIPAL *****\n");
  147. if(returnLogin != 1)
  148. printf("1 - Login\n");
  149. printf("2 - Jogar\n");
  150. printf("3 - Sair\n");
  151. printf("Escolha uma opcao: ");
  152. scanf("%d", &op);
  153.  
  154. switch(op){
  155.  
  156. case 1: if(returnLogin != 1)
  157. returnLogin = efetuaLogin(fcliente);
  158. else
  159. printf("opcao invalida!\n");
  160. break;
  161.  
  162. case 2: break;
  163.  
  164. case 3: printf("A encerrar o jogo...\n");
  165. unlink(fcliente);
  166. exit(0);
  167.  
  168. default: printf("Opcao invalida!\n");
  169. }
  170.  
  171. }while(op > 0 && op < 4);
  172. }
  173.  
  174.  
  175. void recebeSinal(int sig){
  176.  
  177. if(sig == SIGUSR1){
  178. printf("\nO jogo vai encerrar...\n");
  179. sleep(2);
  180. char fifoClienteTmp[TAM];
  181. sprintf(fifoClienteTmp, "cliente%d", getpid());
  182. unlink(fifoClienteTmp);
  183. exit(0);
  184. }
  185. }
  186.  
  187.  
  188. int main(void){
  189.  
  190. int pid;
  191. char fifoCliente[TAM];
  192.  
  193.  
  194. signal(SIGUSR1, recebeSinal);
  195.  
  196. pid = getpid();
  197. sprintf(fifoCliente, "cliente%d", pid);
  198. mkfifo(fifoCliente, 0600);
  199.  
  200.  
  201. menu(fifoCliente);
  202.  
  203.  
  204. return 0;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement