Don't grow strings by concatenation. Use ''.join() instead.

This commit is contained in:
Raymond Hettinger 2014-05-18 21:02:25 +01:00
parent 3a260d228b
commit ae4bab71e3

View File

@ -204,13 +204,15 @@ length message::
totalsent = totalsent + sent
def myreceive(self):
msg = b''
while len(msg) < MSGLEN:
chunk = self.sock.recv(MSGLEN-len(msg))
chunks = []
bytes_recd = 0
while bytes_recd < MSGLEN:
chunk = self.sock.recv(min(MSGLEN - bytes_recd, 2048))
if chunk == b'':
raise RuntimeError("socket connection broken")
msg = msg + chunk
return msg
chucks.append(chunk)
bytes_recd = bytes_recd + len(chunk)
return b''.join(chunks)
The sending code here is usable for almost any messaging scheme - in Python you
send strings, and you can use ``len()`` to determine its length (even if it has