首页 文章

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

提问于
浏览
3
int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len);

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

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

1 回答

  • 7

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

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

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

    它没有'转移'任何东西 . accept() 使用连接详细信息创建一个新套接字 .

相关问题