사용자 도구

사이트 도구


kb:xmlrpc

XML RPC

HTTP를 XML 문서를 교환함으로서 다른 머신에 있는 함수를 호출한다.

좀 느리기는 하지만 사용하기가 매우 쉽다. 간단한 모니터링/통계 프로그램을 위해서는 이만한 것도 없을 듯 하다.

Python

Python에는 버전 2.2 이후부터 XML-RPC 관련 모듈이 기본으로 포함되어있다. 굳이 옛날 버전을 써야한다면 여기에서 다운로드받으면 된다. 클래스 이름이나 함수 시그너쳐가 약간씩 틀리므로 주의.

클라이언트

from xmlrpclib import *
 
svr = ServerProxy('http://localhost:8000')
s = 'abcdef'
print svr.reverse(s)

서버

# XML RPC server
from xmlrpclib import *
from SimpleXMLRPCServer import *
 
class MyRequestHandler(SimpleXMLRPCRequestHandler):
    def _dispatch(self, method, params):
        try:
            server_method = getattr(self, "do_"+method)
        except:
            raise AttributeError, "No XML-RPC procedure %s" % method
        return server_method(*params)
 
    def log_message(self, format, *args):
        print format % args
 
    def do_reverse(self, txt):
        L = list(txt)
        L.reverse()
        return ''.join(L)
 
 
if __name__ == '__main__':
    server = SimpleXMLRPCServer(('', 8000), MyRequestHandler)
    server.serve_forever()

링크


kb/xmlrpc.txt · 마지막으로 수정됨: 2014/11/07 14:07 (바깥 편집)