class_docstr: Simple socket server with length-prefixed pickle messages.
  
  Args:
    :count: expected number of nodes in the cluster.
docstr: Start listener in a background thread
  
  Returns:
    address of the Server as a tuple of (host, port)
docstr_tok: ["Start","listener","in","a","background","thread","Returns",":","address","of","the","Server","as","a","tuple","of","(","host",",","port",")"]
code: def start(self):
      """Start listener in a background thread
  
      Returns:
        address of the Server as a tuple of (host, port)
      """
      server_sock = self.start_listening_socket()
  
      # hostname may not be resolvable but IP address probably will be
      host = self.get_server_ip()
      port = server_sock.getsockname()[1]
      addr = (host, port)
      logger.info("listening for reservations at {0}".format(addr))
  
      def _listen(self, sock):
          CONNECTIONS = []
          CONNECTIONS.append(sock)
  
          while not self.done:
              read_socks, write_socks, err_socks = select.select(
                  CONNECTIONS, [], [], 60
              )
              for sock in read_socks:
                  if sock == server_sock:
                      client_sock, client_addr = sock.accept()
                      CONNECTIONS.append(client_sock)
                      logger.debug(
                          "client connected from {0}".format(
                              client_addr
                          )
                      )
                  else:
                      try:
                          msg = self.receive(sock)
                          self._handle_message(sock, msg)
                      except Exception as e:
                          logger.debug(e)
                          sock.close()
                          CONNECTIONS.remove(sock)
  
          server_sock.close()
  
      t = threading.Thread(target=_listen, args=(self, server_sock))
      t.daemon = True
      t.start()
  
      return addr
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import nested_scopes
  from __future__ import print_function
  import logging
  import os
  import pickle
  import select
  import socket
  import struct
  import sys
  import threading
  import time
  from .None import util
label_desc: Use image node_id 4 for calling the Server obj's underlying member method code with example usage: obj.start() and returns: addr