Este README explica a importância da Chamada de Procedimento Remoto (RPC) e fornece uma visão geral dos componentes cliente e servidor utilizados em uma aplicação simples de Quiz implementada com XML-RPC em Python.
RPC é um protocolo que permite que um programa de computador invoque um procedimento (sub-rotina) em outro espaço de endereço (comumente em outro sistema de computador) como se fosse uma chamada de procedimento local, sem o programador codificar explicitamente os detalhes para essa interação remota. RPC permite comunicação transparente entre sistemas distribuídos, permitindo que diferentes processos se comuniquem e executem procedimentos remotamente.
O lado cliente da aplicação de Quiz é responsável por fornecer uma interface gráfica ao usuário (GUI) usando Tkinter e interagir com um servidor remoto via XML-RPC. Aqui estão as principais funcionalidades do cliente:
- Recupera uma lista de perguntas disponíveis do servidor usando
quiz_client.get_list()
. - Atualiza a GUI exibindo essas perguntas em uma caixa de lista (
question_listbox
) para o usuário visualizar e selecionar.
- Recupera a pergunta selecionada da GUI (
question_listbox
). - Exibe a pergunta juntamente com suas opções em uma nova janela.
- Permite que o usuário selecione uma resposta usando botões de rádio (
QRadioButton
) e envie sua resposta. - Comunica-se com o servidor para verificar se a resposta está correta e atualiza o usuário com o resultado.
- Recupera os pontos totais acumulados pelo usuário do servidor usando
quiz_client.get_total_points()
. - Exibe os pontos totais em uma caixa de mensagem.
O lado servidor da aplicação de Quiz hospeda as perguntas, lida com as respostas dos usuários e mantém o controle dos pontos totais. Aqui está uma visão geral da funcionalidade do servidor:
- Inicializa com uma lista de perguntas do quiz, cada uma contendo o texto da pergunta, opções e resposta correta.
- Registra as perguntas respondidas e os pontos totais ganhos pelo usuário.
- Retorna uma lista de perguntas que ainda não foram respondidas.
- Verifica se a
answer
fornecida corresponde à resposta correta para oquestion_text
dado. - Atualiza os pontos totais conforme necessário.
- Retorna os pontos totais acumulados pelo usuário.
- Configura um servidor XML-RPC (
SimpleXMLRPCServer
) emlocalhost
na porta8000
. - Registra uma instância da classe
Quiz
no servidor, permitindo que os clientes invoquem seus métodos remotamente.
Para executar a aplicação de Quiz:
- Certifique-se de que o script do servidor está em execução (
server.py
) para lidar com as solicitações dos clientes. - Execute o script do cliente (
client.py
) para abrir a interface gráfica do Quiz e interagir com o servidor. - Use a GUI para visualizar perguntas, respondê-las e verificar seus pontos totais.
Observação: Este README fornece uma visão geral da aplicação de Quiz usando XML-RPC. Para uma implementação completa e implantação, certifique-se de que todas as dependências necessárias estejam instaladas (tkinter
, xmlrpc.client
, xmlrpc.server
).