[Python-checkins] python/dist/src/Doc/lib libsimplexmlrpc.tex, 1.7, 1.8

akuchling at users.sourceforge.net akuchling at users.sourceforge.net
Wed Dec 1 19:34:13 CET 2004


Update of /cvsroot/python/python/dist/src/Doc/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23533

Modified Files:
	libsimplexmlrpc.tex 
Log Message:
Make the example server code clearer; add the corresponding example client.  [Bugfix candidate]

Index: libsimplexmlrpc.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsimplexmlrpc.tex,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- libsimplexmlrpc.tex	8 Oct 2004 18:34:47 -0000	1.7
+++ libsimplexmlrpc.tex	1 Dec 2004 18:34:11 -0000	1.8
@@ -88,18 +88,49 @@
 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 



More information about the Python-checkins mailing list