RaspCam/server/lib/CameraCommander/CameraConnection.py

33 lines
738 B
Python
Raw Normal View History

2020-05-15 12:27:34 +02:00
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()