हम 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('http://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']