Make the example server code clearer; add the corresponding example client. [Bugfix candidate]
This commit is contained in:
parent
9cc5cb7c4b
commit
ab807e8a0d
|
@ -88,18 +88,49 @@ simple, stand alone XML-RPC servers.
|
|||
Example:
|
||||
|
||||
\begin{verbatim}
|
||||
class MyFuncs:
|
||||
def div(self, x, y) : return x // y
|
||||
|
||||
from SimpleXMLRPCServer import SimpleXMLRPCServer
|
||||
|
||||
# Create server
|
||||
server = SimpleXMLRPCServer(("localhost", 8000))
|
||||
server.register_function(pow)
|
||||
server.register_function(lambda x,y: x+y, 'add')
|
||||
server.register_introspection_functions()
|
||||
|
||||
# Register pow() function; this will use the value of
|
||||
# pow.__name__ as the name, which is just 'pow'.
|
||||
server.register_function(pow)
|
||||
|
||||
# Register a function under a different name
|
||||
def adder_function(x,y):
|
||||
return x + y
|
||||
server.register_function(adder_function, 'add')
|
||||
|
||||
# Register an instance; all the methods of the instance are
|
||||
# published as XML-RPC methods (in this case, just 'div').
|
||||
class MyFuncs:
|
||||
def div(self, x, y):
|
||||
return x // y
|
||||
|
||||
server.register_instance(MyFuncs())
|
||||
|
||||
# Run the server's main loop
|
||||
server.serve_forever()
|
||||
\end{verbatim}
|
||||
|
||||
The following client code will call the methods made available by
|
||||
the preceding server:
|
||||
|
||||
\begin{verbatim}
|
||||
import xmlrpclib
|
||||
|
||||
s = xmlrpclib.Server('http://localhost:8000')
|
||||
print s.pow(2,3) # Returns 2**3 = 8
|
||||
print s.add(2,3) # Returns 5
|
||||
print s.div(5,2) # Returns 5//2 = 2
|
||||
|
||||
# Print list of available methods
|
||||
print s.system.listMethods()
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
\subsection{CGIXMLRPCRequestHandler}
|
||||
|
||||
The \class{CGIXMLRPCRequestHandler} class can be used to
|
||||
|
|
Loading…
Reference in New Issue