У меня есть несколько вопросов о сокете в c ++!
Для дальнейшего использования, пожалуйста, оставляйте только один вопрос за раз. Если у вас есть несколько вопросов, разместите их отдельно.
допустим, он пишет сервер для игры, в котором он будет играть одновременно 200 человек, но прием заблокирован, потому что он уже обслуживает одного клиента, как с этим бороться?
Используйте сокеты в неблокирующем режиме, используя select()
/ (e)poll()
или другие механизмы обратного вызова, чтобы узнать, какие сокеты имеют ожидающую активность и когда.
В противном случае используйте accept()
в отдельном потоке, чем другие потоки, используемые для обслуживания подключенных клиентов.
как скачать список всех подключенных в данный момент клиентов, чтобы потом можно было отправить сообщение всем?
Сервер отвечает за отслеживание подключенных клиентов. Затем он может перебирать этот список при необходимости.
Если клиент хочет отправить сообщение каждому другому клиенту, лучше всего отправить одно сообщение на сервер и попросить сервер передать сообщение каждому другому клиенту.
В противном случае клиент должен будет запросить список с сервера, а затем отправить сообщение каждому другому клиенту в отдельности.