How to receive a data file of unknown length using a python socket?

twgray twgray2007 at gmail.com
Sat Jul 18 17:33:48 EDT 2009


I am attempting to send a jpeg image file created on an embedded
device over a wifi socket to a Python client running on a Linux pc
(Ubuntu).  All works well, except I don't know, on the pc client side,
what the file size is?  The following is a snippet:

[code]
        f = open("frame.jpg",mode = 'wb')
       while True:
            data = self.s.recv(MAXPACKETLEN)
            if len(data) == 0:
                break
            recvd += len(data)
            f.write(data)
        f.close()
[end]

It appears to be locking up in  'data=self.s.recv(MAXPACKETLEN)' on
the final packet, which will always be less than MAXPACKETLEN.

I guess my question is, how do I detect end of data on the client side?



More information about the Python-list mailing list