Exemplo
Existem diversas implementações de RPC, nesse exemplo será utilizado uma implementação disponível na biblioteca padrão de Python 3.
O processo servidor
O servidor estará disponível no "localhost:8000" e disponibilizará um procedimento que verifica se o valor passado como argumento é um numero par.
from xmlrpc.server import SimpleXMLRPCServer def is_even(n): print("Requisição recebida com o seguinte argumento: " + str(n)) return n % 2 == 0 server = SimpleXMLRPCServer(("localhost", 8000)) print("Listening on port 8000...") server.register_function(is_even, "is_even") server.serve_forever()
O processo cliente
O processo cliente enviará ao servidor localizado em "localhost:8000" duas requisições, uma para verificar se o numero 3 é par e outra para verificar se o numero 100 é par.
import xmlrpc.client with xmlrpc.client.ServerProxy("http://localhost:8000/") as proxy: print("3 é par: %s" % str(proxy.is_even(3))) print("100 é par: %s" % str(proxy.is_even(100)))
Testando
Executando ambos os scripts:
No terminal em que o servidor estava sendo executado, podemos ver que ele recebeu duas requisições vindas do endereço "127.0.0.1": uma com o argumento "3" e outra com o argumento "100".
No terminal do processo cliente podemos ver que ele executou os procedimentos normalmente, exibindo os resultados esperados.