import socket class CameraConnection: def __init__(self, sock, addr): self.sock = sock self.addr = addr[0] self.port = addr[1] self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 300) self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 30) self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 4) def receive(self): data = b"" ret = self.sock.recv(1) while ret and ret != b"\x00": data = data + ret ret = self.sock.recv(1) if not data: return None return data.decode() def send(self, msg): data = (msg + "\0").encode() return self.sock.send(data) == len(data) def close(self): self.sock.close()