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