docs: def receive(self):
          """Receive data from socket."""
          while True:
              try:
                  # read data from the buffer
                  data = self.socket.recv(self._socket_recv)
              except socket.timeout as e:
                  _LOGGER.debug(e)
                  sleep(1)
                  return
              except socket.error as e:
                  # Something else happened
                  _LOGGER.error(e)
                  return
  
              else:
                  if len(data) == 0:
                      # no more data being transmitted
                      _LOGGER.info('orderly shutdown on server end')
                      return
  
                  # remove trailing carriage return, then split
                  # on carriage return (for multi-line replies)
                  results = data.decode('ascii').rstrip('\r').split('\r')
                  if len(results) > 1:
                      _LOGGER.debug("multi-line reply")
                  for result in results:
                      _LOGGER.debug("receive thread: " + result)
                      self.queue.put(result)