Я думаю, что ваша мысль верна.
Сервер и клиент должны иметь уникальный идентификатор друг для друга, если клиент может подключаться несколько раз.
Если клиент не может подключиться несколько раз, сервер может определить возвращаемое значение для каждого клиента 'accept (2)'; однако в вашем случае клиентам требуется несколько соединений, поэтому вам необходимо разработать собственный протокол для идентификации каждого клиента.
В моем случае, в предыдущем проекте я сделал UUID перед подключением к серверу и использовал UUID в качестве идентификатора клиента. В Mac OS X или Linux вы можете включить файл заголовка, который находится в /usr/include/uuid/uuid.h.
#include <uuid/uuid.h>
...
{
uuid_t id;
uuid_generate(id);
...
}
Затем вы можете получить случайное 128-битное значение в 'id'. Я использовал этот UUID в качестве идентификации клиентов. Может быть лучший способ определить каждого клиента.