사용자 도구

사이트 도구


rpc

문서의 이전 판입니다!


RPC

XMLRPC

  • 동시에 여러 커넥션 처리(threading)
from socketserver import ThreadingMixIn
 
class ThreadedXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
    pass
 
 
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)
 
 
with ThreadedXMLRPCServer((ip_address, port),
                          requestHandler=RequestHandler,
                          allow_none=True, logRequests=False) as server:
 
    server.register_introspection_functions()
 
     def ping():
        return 'pong'
 
    server.register_function(ping, 'ping')
 
    server.serve_forever()

msgpack-rpc

설치

pip install msgpack-rpc-python
pip install msgpack-numpy

server

import msgpack
import msgpack_numpy as m
m.patch()
import numpy as np
import msgpackrpc
 
 
class SumServer(object):
    def sum(self, x, y):
        return x + y
 
 
server = msgpackrpc.Server(SumServer())
server.listen(msgpackrpc.Address("localhost", 18800))
server.start()

client

import msgpack
import msgpack_numpy as m
m.patch()
import numpy as np
import msgpackrpc
 
client = msgpackrpc.Client(msgpackrpc.Address("localhost", 18800))
result = client.call('sum', 1, 2)  # = > 3
result = client.call('sum', np.arange(10), np.arange(10, 20))
rpc.1547996877.txt.gz · 마지막으로 수정됨: 2024/03/23 02:37 (바깥 편집)