Pickled objects over the network

Walker Lindley brotherjenos at gmail.com
Fri Jul 20 12:05:22 EDT 2007


Right, it's just a big problem with pickle because if you do a recv at the
wrong time and try to load it with pickle, you'll start getting weird errors
down in the pickle module as opposed to just not getting the full string you
expected if you were using plaintext strings. This is probably me being
spoiled from Java, but they built a stream class that can be used for files,
networks, and many other things while hiding nasty details like this. It
seems like Python could really benefit from this kind of architecture. Of
course, there's probably already something out there that I just don't know
about.


-Walker

On 7/20/07, Jean-Paul Calderone <exarkun at divmod.com> wrote:
>
> On Fri, 20 Jul 2007 08:27:13 -0700, Walker Lindley <brotherjenos at gmail.com>
> wrote:
> >It doesn't interface well because the string you end up with often
> doesn't
> >fit into a single packet. Therefore you have to add a layer of protocol
> on
> >top of it that allows you to check to make sure you have the whole string
> >received before trying to unpickle it. This the case even if you use
> >socket's makefile() method to make a file descriptor.
>
> This is somewhat misleading. TCP doesn't guarantee any minimum packet size
> larger than a single byte.  Any messaging system which uses strings longer
>
> than one byte must have a framing protocol to be reliable.  So, this isn't
> really specific to pickle.  Basically, all protocols have to address this.
>
> Jean-Paul
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
This e-mail is licensed under the Creative Commons
Attribution-NoDerivs 2.5License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-nd/2.5/ or send a letter to Creative
Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105,
USA.


-- 
This e-mail is licensed under the Creative Commons
Attribution-NoDerivs 2.5License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-nd/2.5/ or send a letter to Creative
Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105,
USA.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070720/4c82dd8e/attachment.html>


More information about the Python-list mailing list