def recvData(sock, count):
data = b''
while len(data) < count:
packet = sock.recv(count - len(data))
if not packet:
return None
data += packet
return data
def sendData(sock, data):
totalsent = 0
msg_length = len(data)
while totalsent < msg_length:
sent = sock.send(data[totalsent:])
if sent == 0:
raise RuntimeError("socket connetction broken")
totalsent = totalsent + sent
def recvDataLenAndContent(sock, unitSize=1):
sizeDataBytes = recvData(sock, 4)
reader = BinaryReader()
size = reader.read(sizeDataBytes, 'int32')[0]
dataBytes = recvData(sock, size * unitSize)
return dataBytes
def decodeRgbImgFromBytes(databytes):
data = np.frombuffer(databytes, dtype=np.uint8)
img = cv2.imdecode(data, cv2.IMREAD_COLOR)
return img
def decodeGrayImgFromBytes(databytes):
data = np.frombuffer(databytes, dtype=np.uint8)
img = cv2.imdecode(data, cv2.IMREAD_GRAYSCALE)
return img
def sendDataLenAndContent(sock, num, databytes):
sizebytes = np.array(num, dtype=np.int32).tobytes()
sendData(sock, sizebytes)
sendData(sock, databytes)
python socket发送接收图像
最新推荐文章于 2024-08-20 21:38:53 发布