uds socket

UDS通讯过程_uds socket-CSDN博客

Unix domain socket又叫 UDS或者IPC套接字,属于进程间通信的一种。用于在同一主机操作系统上执行的进程之间交换数据。 它由地址族引用 AF_UNIX。 UDS中有效的套接字类型是:

    SOCK_STREAM:面向流的套接字
    SOCK_DGRAM:保留消息边界的面向数据报的套接字
    SOCK_SEQPACKET:面向连接的序列数据包套接字,保留消息边界,并按照发送消息的顺序传递信息

UDS工作机制简介

    UDS其实是在本地的相应的路径下建立了一个文件,这个文件的inode对应一个套接字描述符 sockfd;
    服务端的监听listen,其实就是在一个peer_wait等待队列上等待客户端的连接;
    客户端通过上面提到的文件找到对应的服务端的套接字描述符,发起连接,并在peer_wait上等待服务端返回信息;
    服务端在接收到请求后调用 unix_accept()接收请求,生成 struct sock部分;
    服务端为客户端在本地创建一个 struct socket 结构体,并与上一步生成的 struct sock 相互绑定,形成一个完成的套接字;
    客户端从peer_wait等待队列上返回后,在本地创建服务端的 struct sock 并与本地的 socket进行绑定,这样就形成了一个跟远端建立连接后的完成的socket;
    发送数据过程就是创建buffer 并将要发送的数据写入buffer中,然后将buffer挂载到远端的接收队列(sk_receive_queue)上,并调用远端的sk_data_ready()函数唤醒远端进行数据接收
————

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

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

相关文章

设计模式代码实战-装饰者模式

1、问题描述 小明喜欢品尝不同口味的咖啡,他发现每种咖啡都可以加入不同的调料,比如牛奶、糖和巧克力。他决定使用装饰者模式制作自己喜欢的咖啡。 请设计一个简单的咖啡制作系统,使用装饰者模式为咖啡添加不同的调料。系统支持两种咖啡类型…

Ollama、FastGPT大模型RAG知识库结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ https://concise-eater-d47.notion.site/Ollama-Fastgpt-b170…

优惠券布局的最终方案------css属性mask

先贴图&#xff1a; 以上这些都是通过mask去实现出来&#xff1a; <!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

华为配置通过流策略实现流量统计

配置通过流策略实现流量统计示例 组网图形 图1 配置流策略实现流量统计组网图 设备 接口 接口所属VLAN 对应的三层接口 IP地址 SwitchA GigabitEthernet1/0/1 VLAN 10 - - GigabitEthernet1/0/2 VLAN 20 - - GigabitEthernet1/0/3 VLAN 10、VLAN 20 - - S…

基于Python网络招聘数据可视化分析系统的设计与实现

基于Python网络招聘数据可视化分析系统的设计与实现 Design and Implementation of Python-based Network Recruitment Data Visualization Analysis System 完整下载链接:基于Python网络招聘数据可视化分析系统的设计与实现 文章目录 基于Python网络招聘数据可视化分析系统的…

【AIGC调研系列】原生多模态大模型Mini-Gemini的优势

香港中文大学的原生多模态大模型Mini-Gemini具有以下优势&#xff1a; 兼容性和高效性&#xff1a;Mini-Gemini能够兼容各种大型语言模型&#xff08;LLMs&#xff09;&#xff0c;参数范围从2B到34B&#xff0c;实现了高效的任意推断。这一设置使Mini-Gemini在零样本基准测试…

本地搭建属于你自己的AI搜索引擎 支持多家AI模型

FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器&#xff0c;并使用 MULTI LLM 生成答案&#xff0c;无需 GPU。用户可以提出问题&#xff0c;系统将进行多引擎搜索&#xff0c;并将搜索结果合并到LLM中&#xff0c;并根据搜索结果生成答案。全部免费使用。 项目…

全排列(函数法)

全排列 1.next_permutation( ) 和 prev_permutation( ) 函数 1&#xff09;next_permutation( ) 函数 next_permutation( ) 函数用于判断当前序列是否存在按照字典序变得更大一级的下一个序列并变为它&#xff1b;此函数会按照字典序进行重新排列&#xff0c;如果存在下一个序…

数字孪生助力平交道口拆除,推动可持续交通计划

Bentley 的数字孪生技术助力优化材料的使用&#xff0c;节约时间 15%&#xff0c;降低碳排放量 30% 改变公共交通和社区的连通性 维多利亚州的平交道口拆除项目目标是到 2030 年拆除墨尔本 110 个平交道口&#xff0c;这是该州历史上最重要的铁路基础设施项目之一。该项目不仅…

NLP和LLMs: 理解它们之间的区别

NLP&#xff08;自然语言处理&#xff09;和LLMs&#xff08;大型语言模型&#xff09;都与处理自然语言相关&#xff0c;但它们的重点和范围略有不同。 自然语言处理&#xff08;NLP&#xff09;&#xff1a; 定义&#xff1a; 自然语言处理&#xff08;NLP&#xff09;是人…

面试算法-173-二叉树的直径

题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,…

学习 Rust 的第三天:如何编写一个猜数字的游戏

欢迎来到学习 Rust 的第三天&#xff01;我参考的是 Steve Klabnik 的《Rust 编程语言》一书。今天我们要用 Rust 来制作一个猜数字的游戏。 引言 我们将创建一个游戏&#xff0c;它会在 1 到 100 之间随机选择一个数字&#xff0c;用户需要猜出这个数字&#xff0c;猜对了就…

什么是UX设计?

在这个先进的世界中&#xff0c;大城市都被称之为科技之都&#xff0c;在那里&#xff0c;你会经常发现人们在谈论各种应用程序的设计。如果你对应用程序设计有浓烈的兴趣&#xff0c;那你应该去了解一下它的两个基本方面&#xff0c;也就是 UX 设计和 UI 设计。UX 设计旨在处理…

《中医病证分类与代码》-中医疾病分类数据库

《中医病症分类与代码》由国家中医药管理局2020年底修订&#xff0c;目的是为中医疾病及证候的分类提供统一的规范。规定2021年起&#xff0c;各中医机构的临床科室及基层中医药的医师都应按照最新修订的《中医病症分类与代码》规范来填报病案及病历。 中医病证分类与代码数据库…

探索C# 11与.NET 7:入门指南与跨平台开发

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

【代码随想录算法训练营第五十五天 | LeetCode392.判断子序列 、115.不同的子序列】

代码随想录算法训练营第五十五天 | LeetCode392.判断子序列 、115.不同的子序列 一、392.判断子序列 解题代码C&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {vector<vector<int>> dp(s.size() 1, vector<int>(t.size()…

正则表达式(Regular Expression)

正则表达式很重要&#xff0c;是一个合格攻城狮的必备利器&#xff0c;必须要学会&#xff01;&#xff01;&#xff01; &#xff08;参考视频&#xff09;10分钟快速掌握正则表达式&#xff08;奇乐编程学院&#xff09;https://www.bilibili.com/video/BV1da4y1p7iZ在线测试…

算法4:x的平方根

在不使用 sqrt(x)函数的情况下&#xff0c;得到x的平方根的整数部分 重点考察:二分法、牛顿迭代 暴力法&#xff1a; public class Test4 {public static void main(String[] args){int a 80;for (int i1;i*i<a;i){if(i*i8){System.out.println(i);}if(i*i<a &&am…

C++进阶学习:C++11特性

C11是C语言的一个重要版本&#xff0c;引入了许多新的特性和改进。接下来进行这些新特性的学习&#xff01; 1.nullptr的引入 在C语言中&#xff0c;NULL表示空地址。而C中NULL被定义为字面量0。 这里我们通过打印x的类型名&#xff0c;发现NULL的类型名是int&#xff0c;而对…

React构建组件的方式有哪些,有什么区别?

React构建组件的方式有哪些&#xff0c;有什么区别&#xff1f; 1. 函数组件1.1 特点 2. 类组件2.1特点 3. 高阶组件3.1特点 4. 自定义Hook4.1特点 React 组件是构成React应用的基本单元。在React中&#xff0c;有几种不同的方式可以创建组件&#xff0c;每种方式都有其特定的用…