[Python-ideas] socket.sendall() "counter" parameter

Giampaolo Rodola' g.rodola at gmail.com
Fri Apr 18 13:34:45 CEST 2014


With current socket.sendall() implementation if an error occurs it's
impossible to tell how much data was sent. As such I'm wondering whether it
would make sense to add a "counter" parameter which gets incremented
internally:

sent = 0
try:
     sock.sendall(data, counter=sent)
except socket.error as err:
     priint("only %s bytes were sent" % sent)

This would both allow to not lose information on error and avoid keeping
track of the total data being sent, which usually requires and extra len()
call. E.g. when sending a file:

file = open('somefile', 'rb')
total = 0
while True:
    chunk = file.read(8192)
    if not chunk:
        break
    sock.sendall(chunk, counter=total)

Thoughts?

-- 
Giampaolo - http://grodola.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140418/14da77ab/attachment.html>


More information about the Python-ideas mailing list