imo, this is all wrong.
IF you want to write your own (you shouldnt !) you need to follow a common protocol (e.g. MJPEG)
the server should manage the camera, and it needs to accept more than 1 client, if you have multiple.
tl;dr:
skip that effort. use ffmpeg to stream your cam to some rtsp url, and cv2.VideoCapture for the clients