如果一个socket被四元组识别,监听socket的四元组信息是什么?

If a socket is identified by the quartet, what is quartet information of a listening socket?

我试图理解 accept() 创建一个新套接字是什么意思,this question 的接受答案非常有帮助。我的问题来自已接受答案的评论部分,因为我认为它应该是一个单独的问题。我的理解是这样

现在除了问的问题我还想知道我的理解是否是“accept() 和socket() 返回的不同套接字描述符指向同一个套接字(源ip,源端口,目标ip,目标端口,协议) 但代表同一个套接字的不同状态(监听状态,连接到客户端状态)就像同一个文件可以处于读取mode/write模式“是否正确。

没有。侦听套接字由 2 元组标识:IP 地址和端口。

(source ip, source port, destination ip, destination port, protocol) defines a socket.

没有。它定义了一个连接。

A socket descriptor is an integer that works as an identifier of a socket

正确。

(source ip, source port, destination ip, destination port, protocol)

不,见上文。

服务器的侦听套接字正在侦听给定 IP:port,但未连接到任何人,因此只能通过侦听 IP:port.

识别

当建立客户端连接时,accept() returns 一个 new 连接到特定客户端的套接字,因此它可以被两个服务器识别IP:port 和客户 IP:port.

一个套接字代表一个特定的端点,它可能是底层连接的一部分,也可能不是。套接字描述符就是应用程序引用给定套接字的方式。监听套接字有 1 个端点,而连接套接字有 2 个端点。这就是为什么 accept() 必须 return 一个不同于 accept() 被调用的侦听套接字的新套接字。