[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why not have a recvall method?

makefile('rb') return a  io.BufferedReader and the doc(https://docs.python.org/3/library/io.html#io.BufferedIOBase.read) says:
    If the argument is positive, and the underlying raw stream is not interactive, multiple raw reads may be issued to satisfy the byte count (unless EOF is reached first).
------------------ Original ------------------
From:  "Steven D'Aprano"<steve+comp.lang.python at pearwood.info>;
Date:  Sun, Feb 4, 2018 09:31 PM
To:  "python-list"<python-list at python.org>;
Subject:  Re: Why not have a recvall method?
On Sun, 04 Feb 2018 19:26:36 +0800, ??? wrote:

> Hello, allThe socket object has a `sendall` method that can send all
> bytes you specified. Oppositely, socket only has a recv method. I wonder
> why there is not a `recvall` method? To workaround this, I use `f =
> socket.makefile('rb')`, then `call f.read(n)` Thanks.

I am not an expert on sockets, but since f.read(n) will read a maximum of 
n bytes, isn't that the same as socket_obj.recv(n)?