def update_thread
      # Kill thread if it exists
      thread && @thread.kill
      @thread = Thread.new do
        loop do
          message = recv
          @state[message.command] = message.value
          yield(message) if block_given?
        end
      end
    end
def update_thread
      # Kill thread if it exists
      thread && @thread.kill
      @thread = Thread.new do
        loop do
          message = recv
          @state[message.command] = message.value
          yield(message) if block_given?
        end
      end
    end
Create a new EISCP::Receiver object to communicate with a receiver.
 If no host is given, use auto discovery and create a
 receiver object using the first host to respond.

 Manages the thread and uses the same block passed to through #connect.