Я пишу приложение TCP-сервера с помощью Winsock. Клиент, который подключается ко мне (для которого у меня нет источника и, следовательно, не могу вносить изменения), ведет себя следующим образом: если он подключается и я закрываю соединение (потому что он является нежелательным клиентом), он немедленно подключается. В результате я буду вращаться, как сумасшедший, над моими вызовами accept(), если есть клиент, который хочет подключиться ко мне, но с кем я не хочу разговаривать (то есть, что я назвал нежелательным клиентом) ,Принятие TCP-соединений с точностью до 2 IP-адресов
Я хотел бы найти способ предотвратить, что сумасшедший вращается над моими вызовами accept(). Если бы был только один желаемый клиент, я мог бы привязать мой прослушивающий сокет к IP-адресу этого клиента, а не INADDR_ANY. Но, увы, есть более 1 желаемого клиента. Насколько я знаю, нет возможности разрешить соединения только из набора желаемых IP-адресов, если размер этого набора больше 1.
Я просмотрел WSAAccept. К сожалению, похоже, что это просто сменит безумное вращение на обратный вызов.
Есть ли способ отклонить попытку подключения, которая не предполагает принятие() пробуждения и возврата (и, следовательно, приводит ко всему этому безумному вращению)?
Можете ли вы заблокировать или фильтровать входящие соединения на этом порту с помощью брандмауэра? –