Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import string
- import client
- import sys
- import socket
- import func
- import os
- import sys, errno
- from _thread import *
- Buffer_size = 1024
- def menu_server(cliente):
- cred = func.ler_ficheiro()
- a = 0
- while not a:
- user, a = func.check_client(cliente,cred)
- print(user, "ligado")
- flag = 0
- while not flag:
- if flag!=8:
- func.conta_msg_nlidas(cliente, user)
- try:
- ans = (cliente.recv(Buffer_size)).decode()
- except IOError:
- print("Cliente off")
- flag = 1
- if ans:
- if ans == "1":
- print("\nListar Mensagens por ler")
- func.le_mensagens_nlidas(cliente,user)
- func.altera_lidas(cliente,user)
- elif ans == "2":
- print("\nListar todos os clientes autorizados")
- func.lista_users(cliente, cred)
- elif ans == "3":
- print("\nEnviar uma mensagem")
- a = 1
- while a:
- a, aux = func.verifica_user(cred, cliente)
- mensagem = (cliente.recv(Buffer_size)).decode()
- func.multiplasMensagens(aux, user, mensagem)
- elif ans == "4":
- print("\nListar todas as mensagens já lidas")
- func.le_mensagens_lidas(cliente,user)
- elif ans == "5":
- print("\nApagar mensagens")
- func.mostra_mensagens_lidas(cliente,user)
- elif ans == "6":
- print("\nAlterar password")
- func.altera_password(cred, user, cliente)
- elif ans == "7":
- print("\nObter privilegios de operador")
- dic = func.leFicheiroOperador()
- a, dic = func.verificaAdmin(user, dic)
- if a == 1:
- cliente.send("1".encode())
- str = "Qual o username do utilizador que quer tornar Operador?"
- cliente.send(str.encode())
- escolha = (cliente.recv(Buffer_size)).decode()
- i, str = func.tornaOperador(dic, cliente, escolha)
- if i == 0:
- cliente.send(str.encode())
- else:
- cliente.send(str.encode())
- else:
- cliente.send("0".encode())
- elif ans =="8":
- print("\nCriar utilizador")
- dic = func.leFicheiroOperador()
- a, dic = func.verificaAdmin(user, dic)
- if a == 1:
- cliente.send("1".encode())
- novo_username = (cliente.recv(Buffer_size)).decode()
- nova_password = (cliente.recv(Buffer_size)).decode()
- b, str = func.verificaNovoUtilizador(novo_username)
- if (b == 1):
- cliente.send(str.encode())
- func.adiciona_utili(cred, novo_username, nova_password)
- func.adiciona_oper(novo_username)
- else:
- cliente.send(str.encode())
- else:
- str = "O utilizador não tem permissão para executar esta operção pois não é admin"
- cliente.send("0".encode())
- cliente.send(str.encode())
- elif ans == "9":
- print("\nSair do sistema")
- cliente.close()
- exit()
- else:
- print("Escolha inválida")
- flag=8
- def server():
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- host = 'localhost'
- port = int(sys.argv[1])
- try:
- s.bind((host, port))
- except socket.error as msg:
- print('Erro no bind ' + str(msg[0]) + ' Message ' + msg[1])
- print('Bind completo')
- s.listen(5)
- print("Socket em espera")
- print("SERVER RUNNING")
- while True:
- c, addr = s.accept() # Establish connection with client.
- start_new_thread(hey,(c,))
- s.close()
- def hey():
- print("oi")
- if __name__ == "__main__":
- server()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement