[zeromq-dev] EOF on file transfer

KIU Shueng Chuan nixchuan at gmail.com
Tue Dec 9 23:02:38 CET 2014


"range (offsets+1)" should just be "range (offsets)".
"filename.seek (offset)" should be "filename.seek (offset * chunksize)"

Try doing a local file copy with your loop first. The problem in your code
is not with zeromq.
On 10 Dec 2014 00:47, "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/20141210/e0e61ae9/attachment.htm>


More information about the zeromq-dev mailing list