什么是Port Listening

时间:2011-09-19 11:36:16

标签: network-programming listener port

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

2 个答案:

答案 0 :(得分:8)

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

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

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

编辑:在流程方面,

  • listen会告诉内核您对某个 rendez-vous端口感兴趣
  • (我不确定listenaccept之间发生了什么,要么内核缓冲新连接,要么在调用accept之前拒绝它们,请参阅相关手册)
  • accept会将连接绑定到通信端口,并开始缓冲传入的数据包
  • recv(或肯定是pollselect)将从接收缓冲区中提取数据

答案 1 :(得分:7)

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