Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 XMLRPC 서버 및 클라이언트 모듈

<시간/>

XML-RPC 프로토콜을 사용하여 자체 플랫폼 간, 언어 독립적 서버를 만들 수 있습니다. SimpleXMLRPCServer를 사용하여 SimpleXMLRPCServer 인스턴스를 만들고 들어오는 요청을 수신하도록 지시합니다. 다음으로 일부 함수를 서비스의 일부로 정의하고 서버가 호출 방법을 알 수 있도록 해당 함수를 등록합니다.

서버 실행

아래 예제에서는 SimpleXMLRPCServer 인스턴스를 사용하여 서버를 만들고 일부 미리 정의된 기능과 사용자 정의 기능을 등록합니다. 마지막으로 서버를 요청을 수신하고 응답하는 무한 루프에 넣습니다.

예시

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
class RequestHandler(SimpleXMLRPCRequestHandler):
   rpc_paths = ('/RPC2',)
with SimpleXMLRPCServer(('localhost', 9000),
                        requestHandler=RequestHandler) as server:
   server.register_introspection_functions()
   # Register len() function;
   server.register_function(len)
   # Register a function under a different name
   @server.register_function(name='rmndr')
   def remainder_function(x, y):
      return x // y
   # Register a function under function.__name__.
   @server.register_function
   def modl(x, y):
      return x % y
   server.serve_forever()

위의 서버가 시작되면 함수를 참조하고 함수를 호출할 수 있는 클라이언트 프로그램에 의해 호출될 수 있습니다.

클라이언트 실행

예시

import xmlrpc.client
s = xmlrpc.client.ServerProxy('https://localhost:9000')
print(s.len("Tutorialspoint"))
print(s.rmndr(12,5))
print(s.modl(7,3))
# Print list of available methods
print(s.system.listMethods())

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

14
2
1
['len', 'modl', 'rmndr', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']