사용자 도구

사이트 도구


kb:xmlrpc

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:xmlrpc [2014/11/07 14:07] (현재)
줄 1: 줄 1:
 +====== XML RPC ======
 +HTTP를 [[XML]] 문서를 교환함으로서 다른 머신에 있는 함수를 호출한다. ​
 +
 +좀 느리기는 하지만 사용하기가 매우 쉽다. 간단한 모니터링/​통계 프로그램을 위해서는 이만한 것도 없을 듯 하다.
 +
 +
 +====== Python ======
 +[[Python]]에는 버전 2.2 이후부터 XML-RPC 관련 모듈이 기본으로 포함되어있다. 굳이 옛날 버전을 써야한다면 [[http://​www.pythonware.com/​products/​xmlrpc/​ | 여기]]에서 다운로드받으면 된다. 클래스 이름이나 함수 시그너쳐가 약간씩 틀리므로 주의.
 +
 +===== 클라이언트 =====
 +<code python>
 +from xmlrpclib import *
 +
 +svr = ServerProxy('​http://​localhost:​8000'​)
 +s = '​abcdef'​
 +print svr.reverse(s)
 +</​code>​
 +
 +===== 서버 =====
 +<code python>
 +# 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()
 +</​code>​
 +
 +
 +====== 링크 ======
 +  * [[http://​www.xmlrpc.com]] \\ XML-RPC 공식 사이트
 +  * [[http://​xmlrpc-c.sourceforge.net | XML-RPC for C and C++]] \\ A lightweight RPC library based on XML and HTTP.
 +  * [[http://​ws.apache.org/​xmlrpc/​ | Apache XML-RPC]] \\ Apache XML-RPC is a Java implementation of XML-RPC, a popular protocol that uses XML over HTTP to implement remote procedure calls. ​
 +
 +----
 +  * see also [[RPC]], [[XML]]
  
kb/xmlrpc.txt · 마지막으로 수정됨: 2014/11/07 14:07 (바깥 편집)