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

wwu*_*ric 3 c sockets linux

int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len);
Run Code Online (Sandbox Code Playgroud)

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

listen方法监听连接,如果tcp 3方式握手完成,则套接字变得可以接受.在这期间,listen套接字如何将tcp连接转移到新的conn fd套接字accept

use*_*421 7

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

因为否则你永远不会有多个同时发生的客户端.接受的套接字还有一个对等IP地址和端口,监听套接字没有.

在接受期间,listen套接字如何传输tcp连接新的conn fd套接字?

它没有"转移"任何东西.accept()创建一个包含连接详细信息的新套接字.