def _handle( self, conn_lru_dict: LRUCacheType[multiprocessing_connection.Connection, bool], conn: multiprocessing_connection.Connection, c_send: multiprocessing_connection.Connection): try: data = conn.recv_bytes() if not data: raise EOFError self.logger.debug("parse conn %s" % conn) # self.logger.debug(data) try: result = self.handle(data) if result is not None: conn.send_bytes(result) except Exception: self.logger.exception("handle error") conn_lru_dict[conn] = True c_send.send_bytes(b'ok') except OSError: self.logger.debug("conn %s was closed" % conn) conn.close() except EOFError: self.logger.debug("conn %s was eof" % conn) conn.close() except BrokenPipeError: self.logger.debug("conn %s was broken" % conn) conn.close()
def _handle(self, conn_lru_dict: LRUCacheType[multiprocessing_connection.Connection, bool], conn: multiprocessing_connection.Connection, c_send: multiprocessing_connection.Connection): try: data = conn.recv_bytes() if not data: raise EOFError self.logger.debug("parse conn %s" % conn) # self.logger.debug(data) try: result = self.handle(data) if result is not None: conn.send_bytes(result) except Exception: self.logger.exception("handle error") conn_lru_dict[conn] = True c_send.send_bytes(b'ok') except OSError: self.logger.debug("conn %s was closed" % conn) conn.close() except EOFError: self.logger.debug("conn %s was eof" % conn) conn.close() except BrokenPipeError: self.logger.debug("conn %s was broken" % conn) conn.close()
def _solver_worker_process( cls, solver_worker_args: SolverWorkerArgs, comms_connection: Connection, # pyre-ignore cleanup_flag: multiprocessing.Event, # noqa T484 (this does exist) ) -> None: try: for result in cls._run_solver_worker(solver_worker_args): # We do our own pickling here to ensure that we use the v4 # pickle protocol for proper large-object support: # https://www.python.org/dev/peps/pep-3154/ comms_connection.send_bytes( pickle.dumps(result, protocol=pickle.HIGHEST_PROTOCOL)) # `None` is a placeholder to signal that a worker has cleanly finished comms_connection.send(None) except Exception as e: logger.error(str(e)) for l in traceback.format_exc().splitlines(False): logger.error(l) comms_connection.send(e) raise finally: # We need to wait to clean up to make sure the communication pipes # are fully processed/cleared. cleanup_flag.wait() # noqa T484
class RawSocketHandler(socketserver.BaseRequestHandler): def setup(self): registry.append(self) def handle(self): self.conn = Connection(self.request.detach()) while self.conn._handle: try: obj = json.loads(self.conn.recv_bytes().decode('utf-8')) except EOFError: break if obj['type'] == 'message': bus.post(nt_from_dict(Message, obj['message'], None)) self.conn.send_bytes(json.dumps({'ret': True}).encode('utf-8')) elif obj['type'] == 'request': m = bus.post_sync(nt_from_dict(Message, obj['message'], None)) if m: ret = {"ret": True, "response": m._asdict()} else: ret = {"ret": False, "response": None} self.conn.send_bytes(json.dumps(ret).encode('utf-8')) def send(self, msg): if isinstance(msg, Message): ret = {"type": "message", "message": msg._asdict()} else: ret = {"type": "response", "response": msg._asdict()} self.conn.send_bytes(json.dumps(ret).encode('utf-8')) def finish(self): registry.remove(self) def close(self): self.conn.close()
class RawSocketHandler(socketserver.BaseRequestHandler): def setup(self): registry.append(self) def handle(self): self.conn = Connection(self.request.detach()) while self.conn._handle: try: obj = json.loads(self.conn.recv_bytes().decode('utf-8')) except EOFError: break if obj['type'] == 'message': bus.post(nt_from_dict(Message, obj['message'], None)) self.conn.send_bytes( json.dumps({ 'ret': True }).encode('utf-8')) elif obj['type'] == 'request': m = bus.post_sync( nt_from_dict(Message, obj['message'], None)) if m: ret = {"ret": True, "response": m._asdict()} else: ret = {"ret": False, "response": None} self.conn.send_bytes(json.dumps(ret).encode('utf-8')) def send(self, msg): if isinstance(msg, Message): ret = {"type": "message", "message": msg._asdict()} else: ret = {"type": "response", "response": msg._asdict()} self.conn.send_bytes(json.dumps(ret).encode('utf-8')) def finish(self): registry.remove(self) def close(self): self.conn.close()
def receive_sync(cls, data_conn: Connection): data_conn.send_bytes(rtlsdr.read_sync())
def receive_sync(cls, data_conn: Connection): if cls.pyaudio_stream: data_conn.send_bytes(cls.pyaudio_stream.read(cls.CHUNK_SIZE))
def enter_async_receive_mode(cls, data_connection: Connection, ctrl_connection: Connection): ret = hackrf.start_rx_mode(data_connection.send_bytes) ctrl_connection.send_bytes("Start RX MODE:", str(ret))
def ConnSendBytes(connection:Connection, msg:bytearray): connection.send_bytes(msg)
def ConnSendStr(connection:Connection, msg:str): connection.send_bytes(msg.encode())
def receive_sync(cls, data_conn: Connection): if cls.pyaudio_stream: data_conn.send_bytes(cls.pyaudio_stream.read(cls.CHUNK_SIZE, exception_on_overflow=False))
def receive_sync(cls, data_conn: Connection): if cls.pyaudio_stream: data_conn.send_bytes( cls.pyaudio_stream.read(cls.CHUNK_SIZE, exception_on_overflow=False))