📘

標準ライブラリのxmlrpc.serverを使ってみる

2024/02/17に公開

https://docs.python.org/ja/3/library/xmlrpc.server.html

サーバを立てるコード

import logging
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s')
logger = logging.getLogger(__name__)

with SimpleXMLRPCServer(('localhost', 8000),
                        requestHandler=SimpleXMLRPCRequestHandler) as server:

    def my_function(x, y):
        return x + y

    # my_function を 'add' という名前で登録
    server.register_function(my_function, 'add')

    class MyFunctions:
        def multiply(self, x, y):
            return x * y

    # MyFunctions クラスのインスタンスを登録
    server.register_instance(MyFunctions())

    logger.info("サーバーがポート8000で起動しました。")

    # サーバーを起動
    server.serve_forever()

サーバに接続しメソッドを呼び出すコード

import xmlrpc.client

server_url = 'http://localhost:8000'
server = xmlrpc.client.ServerProxy(server_url)

try:
    result_add = server.add(5, 3)
    print(f"加算の結果: {result_add}")

    result_multiply = server.multiply(10, 2)
    print(f"乗算の結果: {result_multiply}")

except Exception as e:
    print("サーバーへのアクセス中にエラーが発生しました:", e)

出典: Python 3.12.1 documentation - xmlrpc.server
著作権: Python Software Foundation; ライセンス: Zero Clause BSD License

Discussion