Поскольку вы не упомянули свою среду / язык, я предполагаю, что C # /. NET 4
Для каждого клиента необходим механизм, чтобы сигнализировать о получении ответа.Обычно это делается с помощью AutoResetEvents: каждый клиент отправляет свой ответ обратно на сервер.Сам сервер может извлечь из ответа (или любого другого свойства, например, соединение) с отправившим его клиентом.Затем он устанавливает соответствующее AutoResetEvent.
Поток, который ранее инициировал отправку сообщения, может впоследствии ждать установки всех AutoResetEvents.