📘
標準ライブラリのxmlrpc.serverを使ってみる
サーバを立てるコード
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