Метод accept
не принимает активного участия в рукопожатии, сам по себе. Передача и прием сообщений осуществляется в стек протокола TCP/IP, как правило, в пространстве ядра ОС.
Однако метод accept()
связан с тем, что стек TCP/IP отправляет сообщение SYN-ACK, если какой-либо процесс имеет активный вызов accept()
для сокета, связанного с соответствующим IP-адресом и портом. Когда трехстороннее квитирование завершено, вызов метода accept()
будет завершен.
Если процесс не вызывает accept()
вовремя, входящее SYN-сообщение будет сброшено ядром, и удаленный клиент в конечном итоге отключит попытку подключения. (С другой стороны, если IP-адрес/порт не привязан, ядро, скорее всего, ответит RST, а удаленный клиент увидит «соединение отказано».)