code: def receive_packet(self, time=0):
          
          if time == 0:
              try:
                  return self.in_queue.get(False)
              except queue.Empty:
                  return None
          elif time < 0:
              try:
                  return self.in_queue.get(True)
              except queue.Empty:
                  return None
          else:
              try:
                  return self.in_queue.get(True, time)
              except queue.Empty:
                  return None
docs: Receive a packet though the link. This call is blocking but will
          timeout and return None if a timeout is supplied.