37 lines
		
	
	
		
			997 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			997 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import socket
 | 
						|
import cv2 as cv
 | 
						|
import pickle
 | 
						|
from pickle import UnpicklingError
 | 
						|
 | 
						|
 | 
						|
def create_client_socket():
 | 
						|
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 | 
						|
    client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 10000000)
 | 
						|
    return client_socket
 | 
						|
 | 
						|
 | 
						|
def create_server_socket(ip, port):
 | 
						|
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 | 
						|
    server_socket.bind((ip, port))
 | 
						|
    return server_socket
 | 
						|
 | 
						|
 | 
						|
def send_image_and_emotions(open_socket, address, photo, emotions):
 | 
						|
    ret, buffer = cv.imencode(".jpg", photo, [int(cv.IMWRITE_JPEG_QUALITY), 30])
 | 
						|
    x_as_bytes = pickle.dumps((buffer, emotions))
 | 
						|
    open_socket.sendall(x_as_bytes)
 | 
						|
 | 
						|
    
 | 
						|
 | 
						|
 | 
						|
def receive_image_and_emotions(open_socket):
 | 
						|
    try:
 | 
						|
        x = open_socket.recvfrom(1000000)
 | 
						|
        data = x[0]
 | 
						|
        (data, emotions) = pickle.loads(data)
 | 
						|
        photo = cv.imdecode(data, cv.IMREAD_COLOR)
 | 
						|
        return (photo, emotions)
 | 
						|
    except UnpicklingError:
 | 
						|
        pass
 | 
						|
    return None
 |