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.