

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.
A byte of surprise . . .

Here the xmlrpc library of the python does the magic, by leaving the programmer give maximum attention to logic by freeing him from the concepts of the sockets, binding, listening, accepting, etc ... which are the primary constraints while developing a network based program. Remote Procedure Call (RPC) mechanism allows the client to call any function defined and registered as 'remote' in the server.
A byte of reality . . .

xmlrpc library offers communication between the client and server in such a way that, we can define functions in one machine (say a server) and access those functions from the other machine (say a client). Here the communication occurs in two ways.
>< client calling the remote server function can
pass arguments to it. So the server recieves this
arguments
>< Server can transport some data as the return
>< Server can transport some data as the return
value of the function that the client called
A byte of practical . . .
Inorder to make the client and server communicate together we need to create the server object and client object with the ip and port of the server. Here i am running the client and server on the same machine. You can replace 127.0.0.1 in sample code with the ip of the server where you need to connect the clients. Port should be greater than the 1024.
server program
A byte of practical . . .

Inorder to make the client and server communicate together we need to create the server object and client object with the ip and port of the server. Here i am running the client and server on the same machine. You can replace 127.0.0.1 in sample code with the ip of the server where you need to connect the clients. Port should be greater than the 1024.
server program
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(a, b) :
return a+b
server=SimpleXMLRPCServer(("127.0.0.1",9009))
server.register_function(add)
server.serve_forever()
In server program we have to create the object of the server with a method called SimpleXMLRPCServer() with parameters as ip and port. Then the function has to be registered inorder to access it remotely. The serve_forever() function is used to put the server wait for the client request infinitely.
client program
client program
import xmlrpclib
server = xmlrpclib.ServerProxy('http://127.0.0.1:9009')
a=input("No 1: ")
b=input("No 2: ")result = server.add(a,b)
print "Result : "+result
In the client program we will use the ServerProxy() method to specify the details(port, ip) of the server which is having a function named add() which can be called remotely. So two integers a,b are passed as parameters to the remote function. Remote function calculates the sum and returns the result to the called function.
I felt this xmlrpc library as the most awesome mechanism provided by the python. It makes the programming to the very simplest extent so that the users can give maximum attention to developing logic, instead of worrying about the networking constraints and errors related to it...
0 comments:
Post a Comment
speak out... itz your time !!!