class_docstr: server protocol. Methods from classes that subclass Server can be called
  transparently from a client
class_docstr_tok: ["server","protocol",".","Methods","from","classes","that","subclass","Server","can","be","called","transparently","from","a","client"]
docstr: main execution loop. Loops and handles exit states
docstr_tok: ["main","execution","loop",".","Loops","and","handles","exit","states"]
code: def exec_loop(self):
      """main execution loop. Loops and handles exit states"""
  
      self.log("in exec_loop")
      try:
          while True:
              self.one_function()
      except ClientExit as e:
          self.log("ClientExit %s" % e)
      except socket.error as e:
          self.log("socket error %s" % e)
          traceback.print_exc(50, self.logf)
      except EOFError:
          self.log("EOF during communication")
          traceback.print_exc(50, self.logf)
      except BaseException:
          # unexpected
          traceback.print_exc(50, sys.stderr)
          sys.exit(1)
  
      LOG.info("exit sever")
  
imports: import os
  import pickle
  import sys
  import _thread
  import traceback
  import socket
  import logging
label_desc: Use image node_id 4 for calling the Server obj's underlying member method code with example usage: obj.exec_loop() without return types