Computer >> Máy Tính >  >> Lập trình >> Python

Mô-đun máy chủ và máy khách XMLRPC bằng Python

Chúng tôi có thể tạo máy chủ đa nền tảng, độc lập với ngôn ngữ của riêng mình bằng giao thức XML-RPC. Chúng tôi sử dụng SimpleXMLRPCServer để tạo phiên bản SimpleXMLRPCServer và yêu cầu nó lắng nghe các yêu cầu đến. Tiếp theo, chúng tôi xác định một số chức năng trở thành một phần của dịch vụ và đăng ký các chức năng đó để máy chủ biết cách gọi nó.

Chạy máy chủ

Trong ví dụ dưới đây, chúng tôi tạo một máy chủ bằng cách sử dụng phiên bản SimpleXMLRPCServer và đăng ký một số chức năng tùy chỉnh cũng như được xác định trước. Cuối cùng, chúng tôi đặt máy chủ vào một vòng lặp vô hạn để nhận và phản hồi các yêu cầu.

Ví dụ

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()

Khi máy chủ trên được khởi động, nó có thể được gọi bởi một chương trình khách có thể tham chiếu đến các chức năng và thực hiện các lệnh gọi hàm.

Chạy ứng dụng

Ví dụ

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())

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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