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