@bit::Shadow
✧(≖ ◡ ≖✿
目录
[listen( ) 的使用](#listen( ) 的使用)
当服务端仅listen()而不accept()情况下,客户端最多可以链接几个?
[当服务端backlog == 1](#当服务端backlog == 1)
[struct socket { 桥梁](#struct socket { 桥梁)
三次握手

即:accept不参与三次握手。
listen( ) 的使用
cpp
#include <sys/socket.h>
int listen(int sockfd, int backlog);
当服务端仅listen()而不accept()情况下,客户端最多可以链接几个?
最多建立backlog + 1个链接----这些称作全链接队列。
因此listen第二个参数的含义是全链接队列中已经建立链接(握手成功)的链接个数。
注:当大于backlog客户端链接时,C端交互仅进行到握手的第一次SYN_SEND
accept的本质是将已经建立好的连接拿出来使用。
当服务端backlog == 1
举例图示
验证得到:正常链接了2个,第三个客户端处于SYN_SENT状态。

struct socket { 桥梁
我们自struct task_struct { 开始到文件描述符表struct file* fd_array\[\] 到达文件与网络的桥梁struct sock { 其链接了TCP UDP通信基础。(作为指针强转形成C风格多态)
UDP无inet_connection_socket {

感谢支持,长期连载
欢迎关注
