[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