为什么accept返回的套接字与param套接字不同?

为什么accept返回的套接字与param套接字不同?,c,linux,sockets,C,Linux,Sockets,accept方法接收listen fd套接字并返回conn fd。当然他们是不同的。但是这两个插座有相同的端口,为什么它们不同呢 listenmethod listen连接,如果tcp三方握手完成,则套接字可以接受。在接受过程中,侦听套接字如何将tcp连接传输到新的conn fd套接字 但是这两个插座有相同的端口,为什么它们不同呢 因为否则,您永远不会同时拥有多个客户端。接受的套接字还具有对等IP地址和端口,而侦听套接字没有 在接受期间,侦听套接字如何将tcp连接传输到新的conn fd套接字

accept方法接收listen fd套接字并返回conn fd。当然他们是不同的。但是这两个插座有相同的端口,为什么它们不同呢

listen
method listen连接,如果tcp三方握手完成,则套接字可以接受。在接受过程中,侦听套接字如何将tcp连接传输到新的conn fd套接字

但是这两个插座有相同的端口,为什么它们不同呢

因为否则,您永远不会同时拥有多个客户端。接受的套接字还具有对等IP地址和端口,而侦听套接字没有

在接受期间,侦听套接字如何将tcp连接传输到新的conn fd套接字


它不会“转移”任何东西
accept()
创建一个包含连接详细信息的新套接字。

它不会“传输”任何内容。它创建一个包含连接详细信息的新套接字。这意味着:accept使用连接详细信息创建一个新套接字,listen fd将指向连接详细信息?它使用连接详细信息创建一个新套接字。这正是我说的。没有“意思”。开始“和侦听FD”的部分对我来说没有任何意义。然后在
listen
accept
中创建连接详细信息?两者都没有。正如您在问题中所说,它们是通过三方握手创建的,并放置在待办事项队列中。在
listen()。还没有联系。奇怪的问题,明白了。这个问题在我的理解范围内,但事实上很奇怪。
int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len);