Many processes can have an open handle that reference the same socket object in the OS, and any thread of these processes that application can read out data from the receive buffer of the socket to the address space of the app. I myself never used a socket object from more than one processes but there is a function to duplicate socket handles: WSADuplicateSocket[^].