33 lines
738 B
Python
33 lines
738 B
Python
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()
|