什么是非监听套接字?

xav*_*erc 5 sockets linux netstat

手册netstat(8)指出“显示侦听和非侦听(对于 TCP,这意味着已建立的连接)套接字。使用 --interfaces 选项,显示未标记的接口”

什么是非监听套接字与监听套接字?还占用端口吗?或者该端口是否可以被其他程序免费使用?

Ell*_*iew 7

套接字运行状态机。他们等待,然后响应请求。其中一个状态是“听”。

非监听是指所有其他状态,换句话说,当某事正在发生或建立连接时。

这里有一个很好的 TCP 状态图,其中包含状态描述。我在这里提供了缩小版本,以防链接中断。

在此输入图像描述


Tan*_*lus 5

侦听套接字是服务器进程等待某人连接到它的套接字,例如空闲的 Web 服务器。它正在侦听的端口被视为正在使用。

非侦听套接字是一种已建立连接的套接字,例如,已连接 Web 客户端(例如浏览器)的 Web 服务器,并且可以或正在传输数据。套接字正在侦听的端口通常也会循环回来由同一进程或进程树侦听。