Хорошо, я узнал в этом вопросе, что опрос сокетов не масштабируется, поэтому я решил изучить асинхронный сокеты, и у меня есть несколько вопросов.
- Если у меня есть несколько сотен клиентов, пытающихся отправить данные своему партнеру, какой асинхронный метод лучше всего использовать? select() poll() или я могу просто вызвать recv() для неблокирующего сокета?
- Когда я опрашиваю и обнаруживаю, что есть данные для чтения, должен ли я создать поток, чтобы позаботиться об этом?
- Должен ли я беспокоиться о какой-либо функции сна, или я должен просто позволить программе использовать 100% ЦП?
- Будет ли вообще эффективно помещать всю эту функциональность в класс? Я бы очень хотел сделать что-то вроде этого:
//thread 1:
while(!quit){
manager.check_clients();
manager.handle_clients();
manager.display_clients();
}
//thread 2:
while(!quit)
manager.manage_admin_input();