2010-09-17 2 views
0

У меня есть TCP-сервер, который создает (блокирующий) сокет, ждет, пока он будет доступен для чтения с помощью select(), а затем вызовет accept() и начнет чтение данные.
Описание: (не мой), иллюстрирующий концепцию.Фазы установления связи 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

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

Если вы заблокировали на accept() вместо этого, он вернется в той же точке (когда сокет сервера перейдет в ESTABLISHED).

Смежные вопросы