Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โมดูล XMLRPC Server และ Client ใน Python


เราสามารถสร้างเซิร์ฟเวอร์ข้ามแพลตฟอร์ม อิสระจากภาษา เองได้โดยใช้โปรโตคอล 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']