A порт - это не более чем концепция , это не то же самое, что если бы вы могли проверить некоторые биты памяти, ожидая некоторой информации.
Итак, прослушивание порта научит ядро, что делать при получении пакетов с этим конкретным номером порта : передать его процессу, который запросил прослушивание на этом порту, вместо ответа [или нет], что порт не открыт.
NB: это всего лишь предположения, я не исследовал какую-либо реализацию ядра.
РЕДАКТИРОВАТЬ: На стороне процесса,
listen
сообщит ядру, что вы заинтересованы в конкретном порту рандеву
- (я не уверен, что происходит между
listen
и accept
, либо ядро буферизует новые соединения, либо отклоняет их до тех пор, пока не будет вызван accept
, см. Соответствующее руководство)
accept
свяжет соединение с коммуникационным портом и начнет буферизацию входящих пакетов
recv
(или poll
или select
, безусловно) будут получать данные из буфера приема