I wanted to ask for standard ways to receive data from a socket stream (with socket.socket.recv()). It's simple when you know the amount of data that you're going to receive, or when you'll receive data until the remote peer closes the connection. But I'm not sure which is the best way to receive a message with undetermined length from a stream in a connection that you expect to remain open. Until now, I've been doing this little trick:
data = client.recv(256) new = data while len(new) == 256: new = client.recv(256) data += new That works well in most cases. But it's obviously error-prone. What if the client sent *exactly* two hundred and fifty six bytes? It would keep waiting for data inside the loop. Is there really a better and standard way, or is this as best as it gets? Sorry if this is a little off-topic and more related to networking, but I'm using Python anyway. Thanks, Sebastian -- http://mail.python.org/mailman/listinfo/python-list