Фазы TCP-квитирования, соответствующие точкам возврата select () и accept () - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть TCP-сервер, который создает (блокирующий) сокет, ждет, пока он не станет доступен для чтения с помощью select (), затем вызывает accept () и начинает читать данные.
Вот пример (не мое), иллюстрирующее концепцию.

Вопрос в том, в какие моменты TCP-рукопожатия возвращаются вызовы select () и accept ()?

TCP 3-way handshake

Ubuntu Hardy, если это имеет значение.
2.6.31-14-сервер # 48ya1 SMP пт 2 апреля 15:43:25 MSD 2010 x86_64 GNU / Linux

1 Ответ

1 голос
/ 17 сентября 2010

Возвращается select(), указывающее, что прослушивающий сокет является «читаемым», сразу после получения последнего пакета на этой диаграмме.

Если бы вы заблокировали accept() вместо этого, он бы вернулся в тот же момент (когда сокет сервера переходит в УСТАНОВЛЕННЫЙ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...