code: def _process(self, data_buffer):
          
          packet = json.loads(data_buffer.decode('utf-8'))
  
          if packet['cmd'] == 'out':
              # Call os.write manually. In Python2.6, sys.stdout.write doesn't use UTF-8.
              os.write(sys.stdout.fileno(), packet['data'].encode('utf-8'))
  
          elif packet['cmd'] == 'suspend':
              # Suspend client process to background.
              if hasattr(signal, 'SIGTSTP'):
                  os.kill(os.getpid(), signal.SIGTSTP)
  
          elif packet['cmd'] == 'mode':
              # Set terminal to raw/cooked.
              action = packet['data']
  
              if action == 'raw':
                  cm = raw_mode(sys.stdin.fileno())
                  cm.__enter__()
                  self._mode_context_managers.append(cm)
  
              elif action == 'cooked':
                  cm = cooked_mode(sys.stdin.fileno())
                  cm.__enter__()
                  self._mode_context_managers.append(cm)
  
              elif action == 'restore' and self._mode_context_managers:
                  cm = self._mode_context_managers.pop()
                  cm.__exit__()
docs: Handle incoming packet from server.