什么是Port Listening

Din*_*han 10 port network-programming listener

"侦听"端口是指对该端口的连续轮询,还是离散轮询或中断驱动的进程."听一个港口"究竟发生了什么?

Kev*_*vin 8

一个端口只不过是一个概念,它不像是你可以检查一些内存位,等待一些信息.

因此,监听端口将告诉内核在接收具有此特定端口号的数据包时要做什么:将其传输到要求侦听该端口的进程,而不是回复[或不]端口未打开.

注意:这只是推测,我没有调查任何内核实现.

编辑:在过程方面,

  • listen会告诉内核你对某个特定的rendez-vous端口感兴趣
  • (我不知道之间发生了什么listenaccept,无论是内核缓冲区的新的连接或拒绝他们,直到accept被调用,请参考相关手册)
  • accept将绑定绑定到通信端口,并开始缓冲传入的数据包
  • recv(或pollselect从接收缓冲器肯定)将拾取数据


ott*_*t-- 7

内核从传入的IP数据包中提取目标端口,然后将数据包转发到为此特定端口注册的所有接收器(是的,可能有多个).用户进程通常使用select(2)或poll(2)来等待事件,但此轮询与传统轮询不同,如"读取I/O端口;延迟500 ms".