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:
|
Example:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
class MyFuncs:
|
from SimpleXMLRPCServer import SimpleXMLRPCServer
|
||||||
def div(self, x, y) : return x // y
|
|
||||||
|
|
||||||
|
|
||||||
|
# Create server
|
||||||
server = SimpleXMLRPCServer(("localhost", 8000))
|
server = SimpleXMLRPCServer(("localhost", 8000))
|
||||||
server.register_function(pow)
|
|
||||||
server.register_function(lambda x,y: x+y, 'add')
|
|
||||||
server.register_introspection_functions()
|
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())
|
server.register_instance(MyFuncs())
|
||||||
|
|
||||||
|
# Run the server's main loop
|
||||||
server.serve_forever()
|
server.serve_forever()
|
||||||
\end{verbatim}
|
\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}
|
\subsection{CGIXMLRPCRequestHandler}
|
||||||
|
|
||||||
The \class{CGIXMLRPCRequestHandler} class can be used to
|
The \class{CGIXMLRPCRequestHandler} class can be used to
|
||||||
|
|
Loading…
Reference in New Issue