浅谈 Linux 网络编程 socket

文章目录

    • socket 介绍

socket 介绍

socket 被翻译成 网络套接字,这个名字实在是不好理解,我更愿意称为"插槽"。

忽略 socket 的中文名,先无脑记住两个规则:

① 记住,一个文件描述符(fd) 指向一个 socket,socket 一定是成对出现的,也就是 接收 和 发送 双方各提供一个 socket 才能建立连接实现通信。
**
**
② 记住,socket 内部由内核借助两个缓冲区实现,也就是 发送端的socket 和 接收端的 socket 里面都有两个缓冲区,这两个缓冲区分别是 读缓冲区 和 写缓冲区。

以上解释可能抽象,将 ① 和 ② 带入下图再细细品:
在这里插入图片描述
图上使用的是 client 和 server,双方都有 读/写缓冲区,因为 client 和 server 都具备 接收 / 发送 的功能。首先是 client 和 server 端各提供一个 socket 用于连接,当 socket 建立连接后,一端的 发送缓冲区 对应对端的 接收缓冲区。

以上就是 socket 的基本介绍,还有一个问题,开头说了"我更愿意将 socket 称为 插槽",为什么?

我只需略微出手,将上图稍微改变一下,你就知道为什么是"插槽"了:
在这里插入图片描述
就问你这像不像"插槽"?
到此,关于 socket 的介绍就结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502544.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[HackMyVM]靶场 Adria

kali:192.168.56.104 主机发现 arp-scan -l 靶机:192.168.56.108 端口扫描 nmap -p- 192.168.56.108 开启了 22 80 139 445端口 进入web 编辑 /etc/hosts,把192.168.56.108 adria.hmv添加进去重新访问 里面没什么有用的东西,注册需要邮箱,…

车辆管理系统:一套系统掌握车辆的运营、维护和使用情况

hello,我是贝格前端工场,直接给大家介绍了各类通用的B端管理系统,收到了大家的欢迎。本次开始介绍针对具体行业的管理系统该如何设计和开发,欢迎大家持续关注、点赞,如有系统定制需求可以私信我们。 一、什么是车辆管理…

中小企业“数智未来”行动|ZStack Cloud 荣获“推荐方案”奖

2月29日,以“数智未来 共创数字时代新篇章”为主题的中小企业“数智未来”行动在京成功举办,本次活动由中央广播电视总台央视频和中国中小企业协会作为联合观察单位,带来了一系列帮助中小企业成就业务新价值和数智化升级的优秀产品和方案&…

信号系统之快速傅里叶变换

1 使用复数DFT的实数DFT 本文的主题,如何使用 FFT 计算真正的 DFT? 由于 FFT 是一种用于计算复数 DFT 的算法,因此了解如何将实数 DFT 数据输入和输出复数 DFT 格式非常重要。图 12-1 比较了实数 DFT 和复数 DFT 存储数据的方式。实数 DFT …

vue3的router

需求 路由组件一般放在&#xff0c;pages或views文件夹, 一般组件通常放在component文件夹 路由的2中写法 子路由 其实就是在News组件里面&#xff0c;再定义一个router-view组件 他的子组件&#xff0c;机会渲染在router-view区域 路由传参 <RouterLink :to"/news…

【Pytorch】成功解决AttributeError: ‘tuple’ object has no attribute ‘dim’

【Pytorch】成功解决AttributeError: ‘tuple’ object has no attribute ‘dim’ &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&…

CentOS7安装MySQL5.7

查看并卸载系统自带的 Mariadb rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 检查系统是否安装过MySQL rpm -qa | grep mysql 检查有无MySQL用户组 cat /etc/group | grep mysql cat /etc/passwd | grep mysql 创建MySQL用户组和用户 groupadd m…

南方电网的能源棋局上,蔚来换电扮演什么角色?

2 月 26 日&#xff0c;南网储能科技与蔚来能源签署协议&#xff0c;将充换电站、储能站、可调负载等聚合资源连接到虚拟电厂平台&#xff0c;推动换电站作为分布式储能在虚拟电厂项目上的应用。 蔚来换电站是国内首个智慧微电网型分布式换电设施&#xff0c;可透过换电订单预…

【C语言】指针初阶2.0版本

这篇博文我们来继续学习指针的其他内容 指针2.0 传值调用与传址调用传值调用传址调用 一维数组与指针理解数组名使用指针深入理解一维数组 二级指针指针数组二维数组与指针 传值调用与传址调用 在开始之前&#xff0c;我们需要先了解这个概念&#xff0c;后面才能够正常的学习…

Linux---进程信号

一、信号的概念 信号是一种向目标进程发送通知消息的机制 信号的特性(可以结合红绿灯、防空警报等生活样例来理解) 1、在信号没有出现之前&#xff0c;我们就已经知道如何去处理信号&#xff0c;即我们认识信号 2、信号是异步产生的&#xff0c;即我们不知道它具体何时产生 3、…

光伏业务管理软件有哪些推荐?

光伏业务管理软件是用于光伏电站的设计、施工、运营和维护等各个环节的软件工具。以下是一些推荐的光伏业务管理软件&#xff1a; PVsyst 这是一款全球广泛使用的光伏系统设计软件&#xff0c;可以进行详细的系统设计&#xff0c;包括组件匹配、逆变器选择、系统布局等。 鹧…

、JMETER与它的组件们

os进程取样器 这个取样器可以让jmeter直接调用python写的测试数据 这样就可以调用python写的测试数据给到jmeter进行调用 注意&#xff1a;1建议python返回转json格式dumps一下&#xff1b;2py文件中需要把结果打印出来&#xff0c;可以不用函数直接编写 传到jmeter之后可以用…