There is an explanation of how to do file transfer in the Guide, chapter 7.
On Tue, Dec 9, 2014 at 5:46 PM, Tiago Hillebrandt <tiagohillebra...@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@lists.zeromq.org > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev