Есть сервер 1, который может принимать сообщения по сети от клиентов 2,3 и 4. В худшем случае все три клиента могут отправить сообщения одновременно. Во-первых, можно ли обойтись одним сокетом, открытым на 1 или нужна многопоточность? Во вторых, как определять размер данных которые нужно считать из сокета? И, наконец, как разграничивать сообщения между собой? Т.е если 2 записал в сокет сообщение длиной 2 байта, и сразу 3 записал сообщение длиной 10 байт. Как определить, что нужно считать сначала 2 байта, обработать, а затем считывать уже 10? Реализован ли необходимый функционал в фреймфорках вроде ZeroMQ? Сообщения предполагается передавать в формате JSON.