У меня есть серверная программа (работает на всех трех основных операционных системах), созданная на с ++, которая стремится соединить двух незнакомцев для общения. Моя текущая модель кажется устаревшей, и мне просто интересно, есть ли лучший способ обслужить клиентов.
-сервер получает запрос на соединение
чеки на бан
-стартовая нить для этого сокета
[поток просто повторяет эти шаги]
-подтверждение связи с партнером (чеком-менеджером)
-если несвязанный запрос партнера из класса менеджера
-получить на мой сокет <- клиент отправляет пакеты с поддержкой активности каждые 2 с или около того <br>
-на отключить сообщить менеджеру, и закрыть поток.
[класс менеджера работает так]
-адд сокет: push_back для моего вектора sockPairs
-request partner: найти неподключенную sockPair, если она не существует, создать новую sockPair, после подключения пометить sockPair для удаления, если уже помечено, удалить его.
-remove socket: добавить флаг к идентификатору менеджера партнера, которого я отключил
-check socket: проверить идентификатор менеджера на предмет отключения
Я думаю, что карта была бы намного более эффективной, однако я не уверен, так как я никогда не работал с ними, что еще вы думаете, я должен изменить? Я надеюсь, что смогу обслужить 200 клиентов с этой моделью, я действительно не уверен, сможет ли текущая модель справиться с этим ...