diff --git a/natnet/nat_net_client.py b/natnet/nat_net_client.py index 0f6bf56..61fabe3 100644 --- a/natnet/nat_net_client.py +++ b/natnet/nat_net_client.py @@ -141,7 +141,10 @@ def __process_socket( try: data, addr = in_socket.recvfrom(recv_buffer_size) if len(data) > 0: - self.__process_message(PacketBuffer(data)) + try: + self.__process_message(PacketBuffer(data)) + except Exception as e: + print(f"Warning: Failed to process packet: {e}") return True except (BlockingIOError, socket.timeout): pass diff --git a/natnet/packet_buffer.py b/natnet/packet_buffer.py index a270cd5..61b5e46 100644 --- a/natnet/packet_buffer.py +++ b/natnet/packet_buffer.py @@ -21,7 +21,7 @@ def read_string( else: data_slice = self.__data[self.pointer : self.pointer + max_length] str_enc, separator, remainder = bytes(data_slice).partition(b"\0") - str_dec = str_enc.decode("utf-8") + str_dec = str_enc.decode("utf-8", errors="replace") if static_length: assert max_length is not None self.pointer += max_length