'__recvall(count) -> data
Receive EXACTLY the number of bytes requested from the socket.
Blocks until the required number of bytes have been received.'

def __recvall(self, count):

    data = bytes('')
    while (len(data) < count):
        d = self.recv((count - len(data)))
        if (not d):
            raise GeneralProxyError((0, 'connection    closed    unexpectedly'))
        data = (data + self.__decode(d))
    return data
