Stream via socket with multiple clients

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