реализовать подключение множества клиентов к одному серверу на TCP сокетах, на котором 1 поток приема и отправки сообщений, т.е сервер в одном потоке слушает всех клиентов (не спрашивайте зачем, это учебный проект и я делаю его по условиям). Я столкнулся с такой траблой, раз поток один, а не отдельный под каждого клиента, то мне получается при приеме сообщения нужно выяснить авторизирован ли клиент который это сообщение прислал, что первое в голову пришло - это завести Dictionary<int, User>, где key это уникальное целочисленное значение, а value это собственно сам юзверь, при авторизации сервер будет генерировать случайный ключ и возвращать его клиенту, дальше клиент в каждом сообщении будет передавать этот ключ и при обращении сервер будет проверять есть ли такой ключ в Dictionary ну и будет отвечать в зависимости от того есть ли такой юзер или есть ли у него права на выполнение той или иной операции. А при выходе клиента сервер просто будет удалять запись по ключу из Dictionary.
Говнокод ли это, если не учитывать что сообщения обрабатываются в одном потоке?
да
Обсуждают сегодня