calling server side function

Chris Colbert sccolbert at gmail.com
Wed Oct 28 18:13:01 EDT 2009


I second the suggestion for XML-RPC...

It also solves the security issue in your example, by only exporting
functions you specifically register...

look at xmlrpclib in the standard python library.

On Wed, Oct 28, 2009 at 8:59 AM, Gabriel Genellina
<gagsl-py2 at yahoo.com.ar> wrote:
> En Wed, 28 Oct 2009 04:04:50 -0300, Paul Hartley <luapyeltrah at hotmail.com>
> escribió:
>
>> I have a socket set up between a client and server program.  Let's say
>> that I serialize (pickle) some data in the client and send it to the server
>> with the intention of calling a function in the server to process the data.
>>  How would one execute the function?  This is not for a web-based
>> application, BTW -- it's a desktop based application
>> My current thought process is (using a generalized example):
>> I have a list of numbers in the client and want to find the length of the
>> list using the server.  There exists a function find_len() in the server
>> code.  I have a list of numbers [1,2,3].  On the client side, I create the
>> tuple ("find_len", [1,2,3]), and serialize it.  I pass this serialized
>> object via a socket to the server, which unpickles it.  The server takes the
>> key (find_len) and uses a getattr call to get the find_len function.  The
>> server then calls find_len([1,2,3]) to get the sum.
>> def find_len(list_):    return
>> Are there better ways of accomplishing this (I'm aware that there are
>> security pitfalls here...)
>
> xmlrpc does more or less the same thing, but serializing in xml instead of
> pickling.
>
> --
> Gabriel Genellina
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list