[zeromq-dev] EOF on file transfer

Doron Somech somdoron at gmail.com
Tue Dec 9 18:00:52 CET 2014


What is the socket type of each?
On Dec 9, 2014 6:47 PM, "Tiago Hillebrandt" <tiagohillebrandt at ubuntu.com>
wrote:

> Hey guys,
>
> I am using the below Python code to transfer big files between a server
> and a client.
>
> *Implementation to send file, server*
>
>     CHUNK_SIZE = 250000
>
>     message = pair.recv() # message is the path to the file
>
>     filename = open(message, 'rb')
>     filesize = os.path.getsize(message)
>
>     offsets = (int(ceil(filesize / CHUNK_SIZE)), 0)[filesize <= CHUNK_SIZE]
>
>     for offset in range(offsets + 1):
>         filename.seek(offset)
>
>         chunksize = CHUNK_SIZE
>
>         if offset == offsets:
>             chunksize = filesize - (CHUNK_SIZE * (offset - 1)) # calculate the size of the last chunk
>
>         data = filename.read(chunksize)
>
>         pair.send(data)
>
>     pair.send(b'')
>
> *Implementation to receive file, client*
>
> while True:
>     data = pairs.recv()
>
>     if data is not '':
>         target.write(data)
>     else:
>         break
>
> However, after transfer a big file using this implementation, for some
> reason an extra data is being added at end of the file:
>
> *File server side*
>
> $ stat file.zip
>   File: `file.zip'
>   Size: 1503656416  Blocks: 2936840    IO Block: 4096   regular file
>
> *Client side*
>
> $ stat file.zip
>   File: `file.zip'
>   Size: 1503906416  Blocks: 2937328    IO Block: 4096   regular file
>
> The size and blocks are different between them.
>
> That said, do you have any suggestions to calculate/send the end of file
> properly?
>
> Thanks!
> --
> *Tiago Hillebrandt*
> Ubuntu Member
> Ubuntu Brazilian Community Council Member
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20141209/ccaf9c6f/attachment.htm>


More information about the zeromq-dev mailing list