python の RPCServer クラスの使い方
PythonのRPCServerクラスを使用するには、最初に関連モジュールのインポートとRPCサーバインスタンスの作成が必要です。次に、公開するメソッドの登録とサーバの実行を行ってください。
Python の RPCServer クラスの使い方を説明する簡単なコードの例を次に示します。
import xmlrpc.server
# 创建一个RPC Server实例
server = xmlrpc.server.SimpleXMLRPCServer(('localhost', 8000))
# 定义一个远程过程(方法),该方法将返回两个数的和
def add_numbers(x, y):
return x + y
# 注册远程过程(方法)
server.register_function(add_numbers, 'add')
# 启动服务器
server.serve_forever()
上の例はPythonの標準ライブラリにあるXML-RPCサーバを実装するモジュールをインポートしています。
そして、SimpleXMLRPCServerインスタンスを作成し、そのサーバーのホスト名とポート番号を指定します。
次に、add_numbersというメソッドを定義しました。これは2つの引数を受け取り、それらを足した和を返します。
最後に、register_functionメソッドを使って、add_numbersメソッドをリモートプロシージャとして登録し、その名称をaddとしました。
最後にserve_foreverメソッドを呼び出してサーバを起動します。これはサーバが終了するまで実行し続けられます。
今ならXML-RPCのクライアントを利用して、サーバ上のaddメソッドを呼び出すことができます。たとえば、xmlrpc.clientモジュールのServerProxyクラスを使うと、以下のようにできます。
import xmlrpc.client
# 创建一个ServerProxy实例,指定服务器的URL(主机和端口号)
proxy = xmlrpc.client.ServerProxy('http://localhost:8000/')
# 调用服务器上的add方法
result = proxy.add(3, 5)
# 打印结果
print(result) # 输出:8
上の例では、XML-RPCクライアントを実装するためのPython標準ライブラリにあるxmlrpc.clientモジュールをまずインポートしています。
サーバのURL(ホストとポート番号)を指定して、ServerProxyインスタンスを作成する。
続いて、インスタンスのaddメソッドを使用して、サーバー側のaddメソッドを呼び出し、2つのパラメータを渡します。
最後に結果をプリントすると、8 が出力されるはずです。
なお、サーバーとクライアントは異なるマシンで実行されてもかまいません。お互いにアクセスできることが条件です。