Linux网络——文件与网络的连接桥梁struct sock {

@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 {

感谢支持,长期连载

欢迎关注

相关推荐
李永奉1 小时前
中科蓝讯SDK开发-提示音音频文件格式转换和压缩教程
网络·单片机·嵌入式硬件·mcu·物联网
其实防守也摸鱼1 小时前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
新时代牛马1 小时前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器
sunoo-2291 小时前
【网络编程 + 数据库】select 与 epoll 核心区别详解 + SQLite 入门到 C 接口全攻略
linux·网络·数据库·vscode·学习·sqlite
长脖鹿Johnny1 小时前
游戏输入系统框架设计(三):网络输入权威与可验证性
网络·游戏·游戏开发·架构设计·输入系统·网络同步
zbyyd1 小时前
Linux 系统编程 :select/epoll 多路复用与 SQLite 数据库实战
linux·数据库·sqlite
虎王物联1 小时前
Docker BuildKit多阶段构建:IoT固件交叉编译流水线实战
运维·物联网·ci/cd·docker·容器·物联网嵌入式
Mortalbreeze1 小时前
深入理解 Linux IO 模型(二):多路复用——select
linux·运维·服务器·网络·tcp/ip
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第17题
运维·数据库·sql·oracle·ocp