code: def simultaneous_listen(self):
          
  
          # Close socket.
          if self.server_con is not None:
              self.server_con.s.close()
              self.server_con = None
  
          # Reset predictions + mappings.
          self.mappings = None
          self.predictions = None
  
          # Connect to rendezvous server.
          parts = self.sequential_connect()
          if parts is None:
              return 0
          con, mappings, predictions = parts
          con.blocking = 0
          con.timeout = 0
          con.s.settimeout(0)
          self.server_con = con
          self.mappings = mappings
          self.predictions = predictions
  
          # Register simultaneous node with server.
          msg = "SIMULTANEOUS READY 0 0"
          ret = self.server_con.send_line(msg)
          if not ret:
              return 0
          return 1
docs: This function is called by passive simultaneous nodes who
          wish to establish themself as such. It sets up a connection
          to the Rendezvous Server to monitor for new hole punching requests.