Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. #!/usr/bin/python
  2. import string
  3. import client
  4. import sys
  5. import socket
  6. import func
  7. import os
  8. import sys, errno
  9. from _thread import *
  10.  
  11.  
  12. Buffer_size = 1024
  13.  
  14. def menu_server(cliente):
  15.  
  16. cred = func.ler_ficheiro()
  17. a = 0
  18. while not a:
  19. user, a = func.check_client(cliente,cred)
  20. print(user, "ligado")
  21. flag = 0
  22. while not flag:
  23. if flag!=8:
  24. func.conta_msg_nlidas(cliente, user)
  25. try:
  26. ans = (cliente.recv(Buffer_size)).decode()
  27. except IOError:
  28. print("Cliente off")
  29. flag = 1
  30. if ans:
  31. if ans == "1":
  32. print("\nListar Mensagens por ler")
  33. func.le_mensagens_nlidas(cliente,user)
  34. func.altera_lidas(cliente,user)
  35. elif ans == "2":
  36. print("\nListar todos os clientes autorizados")
  37. func.lista_users(cliente, cred)
  38. elif ans == "3":
  39. print("\nEnviar uma mensagem")
  40. a = 1
  41. while a:
  42. a, aux = func.verifica_user(cred, cliente)
  43. mensagem = (cliente.recv(Buffer_size)).decode()
  44. func.multiplasMensagens(aux, user, mensagem)
  45. elif ans == "4":
  46. print("\nListar todas as mensagens já lidas")
  47. func.le_mensagens_lidas(cliente,user)
  48. elif ans == "5":
  49. print("\nApagar mensagens")
  50. func.mostra_mensagens_lidas(cliente,user)
  51. elif ans == "6":
  52. print("\nAlterar password")
  53. func.altera_password(cred, user, cliente)
  54. elif ans == "7":
  55. print("\nObter privilegios de operador")
  56. dic = func.leFicheiroOperador()
  57. a, dic = func.verificaAdmin(user, dic)
  58. if a == 1:
  59. cliente.send("1".encode())
  60. str = "Qual o username do utilizador que quer tornar Operador?"
  61. cliente.send(str.encode())
  62. escolha = (cliente.recv(Buffer_size)).decode()
  63. i, str = func.tornaOperador(dic, cliente, escolha)
  64. if i == 0:
  65. cliente.send(str.encode())
  66. else:
  67. cliente.send(str.encode())
  68. else:
  69. cliente.send("0".encode())
  70. elif ans =="8":
  71. print("\nCriar utilizador")
  72. dic = func.leFicheiroOperador()
  73. a, dic = func.verificaAdmin(user, dic)
  74. if a == 1:
  75. cliente.send("1".encode())
  76. novo_username = (cliente.recv(Buffer_size)).decode()
  77. nova_password = (cliente.recv(Buffer_size)).decode()
  78. b, str = func.verificaNovoUtilizador(novo_username)
  79. if (b == 1):
  80. cliente.send(str.encode())
  81. func.adiciona_utili(cred, novo_username, nova_password)
  82. func.adiciona_oper(novo_username)
  83. else:
  84. cliente.send(str.encode())
  85. else:
  86. str = "O utilizador não tem permissão para executar esta operção pois não é admin"
  87. cliente.send("0".encode())
  88. cliente.send(str.encode())
  89. elif ans == "9":
  90. print("\nSair do sistema")
  91. cliente.close()
  92. exit()
  93. else:
  94. print("Escolha inválida")
  95. flag=8
  96.  
  97.  
  98. def server():
  99. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  100. host = 'localhost'
  101. port = int(sys.argv[1])
  102. try:
  103. s.bind((host, port))
  104. except socket.error as msg:
  105. print('Erro no bind ' + str(msg[0]) + ' Message ' + msg[1])
  106. print('Bind completo')
  107. s.listen(5)
  108. print("Socket em espera")
  109. print("SERVER RUNNING")
  110. while True:
  111. c, addr = s.accept() # Establish connection with client.
  112. start_new_thread(hey,(c,))
  113.  
  114. s.close()
  115.  
  116.  
  117. def hey():
  118. print("oi")
  119.  
  120. if __name__ == "__main__":
  121. server()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement