class_docstr: Network Server Class
      
code: def __init__(
      self,
      ncpus="autodetect",
      interface="0.0.0.0",
      broadcast="255.255.255.255",
      port=None,
      secret=None,
      timeout=None,
      restart=False,
      proto=2,
      socket_timeout=3600,
      pid_file=None,
  ):
      pp.Server.__init__(
          self, ncpus, (), secret, restart, proto, socket_timeout
      )
      if pid_file:
          with open(pid_file, "w") as pfile:
              print(os.getpid(), file=pfile)
          atexit.register(os.remove, pid_file)
      self.host = interface
      self.bcast = broadcast
      if port is not None:
          self.port = port
      else:
          self.port = ppc.randomport()
      self.timeout = timeout
      self.ncon = 0
      self.last_con_time = time.time()
      self.ncon_lock = threading.Lock()
  
      self.logger.debug(
          "Starting network server interface=%s port=%i"
          % (self.host, self.port)
      )
      if self.timeout is not None:
          self.logger.debug(
              "ppserver will exit in %i seconds if no "
              "connections with clients exist" % (self.timeout)
          )
          ppc.start_thread("timeout_check", self.check_timeout)
  
imports: import atexit
  import logging
  import errno
  import getopt
  import sys
  import socket
  import threading
  import random
  import string
  import signal
  import time
  import os
  import ppft
  import ppft.auto
  import ppft.common
  import ppft.transport
  import hashlib
label_desc: Use image node_id 1 to create a new _NetworkServer object from inherited base classes: pp with example: obj = _NetworkServer(ncpus, interface, broadcast, port, secret, timeout, restart, proto, socket_timeout, pid_file)