Схема выглядит примерно так Code: SOCKET s; for(;;) { recv(прием данных); switch(обработка принятых данных) { case A://старт потока 1 case B://старт потока 2 case C://старт потока 3 ................ case X:........................... } ............. } В потоки передается сокет из родительского потока,и в них происходит полноценный обменн данными через этот сокет, т.е. как минимум по одному send,recv.Вопрос в том как правильнее это все дело в дочерних потоках синхронизировать с recv в родительском Что бы данные одного потока не были приняты в другом и recv в мейн потоке не фризил работу с сокетами в дочерних.
А у тебя что, один сокет на несколько клиентов ? Как так может быть ? Сколько клиентов, столько и сокетов должно быть.