1. #include<sys/types.h>
    2. #include<sys/socket.h>
    3. int listen(int sockfd,int backlog);

    作用:把主动套接字变成被动套接字
    参数:
    sockfd:通过socket()函数拿到的fd
    backlog:同时允许几路客户端和服务器进行正在连接的过程(正在三次握手)一般填5, 测试得知,ARM最大为8
    返回值:
    成功:0
    出错:-1

    内核中服务器的套接字fd会维护2个链表:
    1. 正在三次握手的的客户端链表(数量=2*backlog+1)
      2.已经建立好连接的客户端链表(已经完成3次握手分配好了newfd)
    例如:listen(fd, 5); //表示系统允许11(=2*5+1)个客户端同时进行三次握手

    image.png