В winsock есть 3 разных версии accept
. Помимо основного accept
, который существует для стандартного соответствия, также существует AcceptEx
, который кажется наиболее продвинутой версией (из-за этого перекрываются возможности io) и WSAAccept
. Последний поддерживает обратный вызов условия, который, насколько я понимаю, позволяет отказаться от запросов на соединение до их принятия (когда включена опция SO_CONDITIONAL_ACCEPT
). Ни одна из других версий не поддерживает эту функциональность.
Поскольку я предпочитаю использовать AcceptEx
с перекрытием io, интересно, почему эта функция доступна только в более простой версии?
Я не знаю достаточно о внутренней работе TCP, чтобы сказать, что на самом деле существует какая-либо разница между отказом подключения до его принятия и отключением сокета сразу после установления соединения? И если есть, есть ли способ имитировать функциональность WSAAccept
с помощью AcceptEx
?
Может кто-то пролить свет на эту проблему?