Для колледжа я разрабатываю локальный эстафетный чат.Я должен запрограммировать сервер чата и клиент, который будет работать только при отправке сообщений в разные окна терминала на одном компьютере с потоками и FIFO.
Часть FIFO У меня нет проблем, часть потоков - это та,это вызывает у меня некоторые головные боли.
На сервере есть один поток для получения команд из FIFO (используется всеми клиентами) и другой поток для каждого подключенного клиента.
Для каждого клиента, которыйсвязано мне нужно знать определенную информацию.Во-первых, я использовал глобальные переменные, которые работали до тех пор, пока был подключен только один клиент (это большая часть чата), чтобы общаться в одиночку.
Итак, в идеале я хотел бы иметь такие данные, как:
-псевдоним
-имя
-email
-etc ...
для каждого клиентаэто связано.Тем не менее, я не знаю, как это сделать.
Я мог бы создать client_data [MAX_NUMBER_OF_THREADS], где client_data была структурой со всем, к чему мне нужно было иметь доступ, но это потребовалось бы в каждой связисервер и клиент запрашивают идентификатор клиента в массиве client_data, и это не кажется очень практичным
Я мог бы также создать экземпляр client_data сразу после создания потока, но он будет доступен только в этом блоке, иэто тоже не очень практично.
Как видите, мне нужно небольшое руководство здесь.Любой комментарий, фрагмент кода или ссылка на любую соответствующую информацию приветствуется.