Все, что вам нужно сделать, это сохранить структуру (массив, хэш, карту, что угодно; массив простой, хэш будет более эффективным, но вряд ли доступен в C), где вы храните свои идентификаторы сокетов (в C каждый сокет имеет int идентификатор, как файл), наряду со всей другой информацией, которую вы хотели бы иметь о каждом отдельном соединении / пользователе.
Каждый раз, когда приходит пакет, вы должны искать данные в структуре.