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

时间:2018-03-16 02:22:53

标签: c linux sockets

void k(int, int) {/*dosomething*/ }
void k(int, int, float) {}

int main()
{
    int k;

    // all of these are now ambiguous
    k(1, 1);
    k(1, 2, 0.4);
    k = 5;
} 

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

int accept(int socket, struct sockaddr *restrict address,socklen_t *restrict address_len); 方法监听连接,如果tcp 3方式握手完成,则套接字变为可接受。在listen

期间,listen套接字如何将tcp连接转移到新的conn fd套接字

1 个答案:

答案 0 :(得分:7)

  

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

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

  

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

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