# Neo Bio Recon
# Enlaces
* Github Project
server code:
```python=
import socket
import sys
import time
import numpy as np
import struct ## new
import zlib
from _thread import *
import cv2
import pickle
import numpy as np
import struct ## new
import zlib
def ReciveData(conn):
data = b""
payload_size = struct.calcsize(">L")
print(payload_size)
print("payload_size: {}".format(payload_size))
while True:
while len(data) < payload_size:
newdata = conn.recv(4096)
if newdata == b"":
return 0
#print("Recv: {}".format(len(data)))
data += newdata
print("Done Recv: {}".format(len(data)))
packed_msg_size = data[:payload_size]
data = data[payload_size:]
msg_size = struct.unpack(">L", packed_msg_size)[0]
print("msg_size: {}".format(msg_size))
while len(data) < msg_size:
data += conn.recv(4096)
frame_data = data[:msg_size]
data = data[msg_size:]
frame=pickle.loads(frame_data, fix_imports=True, encoding="bytes")
frame = cv2.imdecode(frame, cv2.IMREAD_COLOR)
yield frame
def Server():
HOST='192.168.17.2'
PORT=8485
# Socket listening on specified port
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('Socket created')
try:
s.bind((HOST,PORT))
print('Socket bind complete')
s.listen(10)
print('Socket now listening')
except socket.error as e:
print("SOCKET ERROR")
print(str(e))
s.close()
exit(0)
return s
def ConnectionHandler(s):
while True:
conn,addr=s.accept()
print("connection from ", addr[0])
yield conn
def ShowImage(conn):
name = str(time.time())
cv2.namedWindow(name, cv2.WINDOW_NORMAL)
for frame in ReciveData(conn):
cv2.imshow(name, frame)
cv2.waitKey(1)
cv2.destroyWindow(name)
def Main():
s = Server()
for conn in ConnectionHandler(s):
start_new_thread(ShowImage,(conn,))
# Receive new connections on the port
ReciveData(conn)
if __name__ == '__main__':
Main()
def MonitorServer():
ServerSocket = socket.socket()
host = '0.0.0.0'
port = 50051
try:
ServerSocket.bind((host, port))
print(Logdate(),'Server Monitor Started..')
ServerSocket.listen(5)
UpdateACL()
except socket.error as e:
print(str(e))
exit(0)
while True:
Client, address = ServerSocket.accept() # IP Port
start_new_thread(ThreadedMonitor, (Client,address[0],address[1]))
ServerSocket.close()
```
client code:
```python=0
import cv2
import io
import socket
import struct
import time
import pickle
import zlib
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('192.168.17.2', 8485))
connection = client_socket.makefile('wb')
cam = cv2.VideoCapture(0)
cam.set(15, 19980);
cam.set(12, 14500);
img_counter = 0
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
while True:
ret, frame = cam.read()
result, frame = cv2.imencode('.jpg', frame, encode_param)
data = pickle.dumps(frame, 0)
size = len(data)
print("{}: {}".format(img_counter, size))
client_socket.sendall(struct.pack(">L", size) + data)
img_counter += 1
client_socket.close()
cam.release()
```
* Face
* https://www.youtube.com/watch?v=cZkpaL36fW4
* https://thecleverprogrammer.com/2020/06/25/image-processing-with-machine-learning-and-python/
* https://pythondiario.com/2018/07/proyecto-r-face-reconocimiento-facial.html
* Voice
* https://github.com/rhythmize/user-authentication-using-voice-biometrics