• DBUS是什么 如何使用


    DBus提供了一种低延时,低开销,高可用性的进程间通信方式,其以消息作为驱动,采用二进制的协议,实现一对一及多对多的对等通信,避免通信的序列化(编码过程)过程,提高通信效率.DBus进程通信的核心是提供了一个后台中转守护进程,需要通信的进程首先连接到DBus守护进程,在想要发送消息时,其先发送到守护进程,再通过DBus守护进程转到目标进程中.守护进程相当于消息流通的路由器的角色,是一个高效的消息管道.具体工作模式:

    DBus消息主要有四类:
    方法调用信息MethodCall:此消息将会触发一个函数调用
    方法调用返回MethodReturn:当函数执行完之后返回执行结果给调用进程
    错误消息Error Signal:函数执行触发错误时发送此消息
    通知消息Signal:可以理解为一个事件,不触发函数的调用,但是对此消息感兴趣的进程可以监听此消息并进行处理.
    DBus通信模式可以降低系统开发复杂度和耦合性,提升模块能力的复用性和开发效率.通常对于移动端开发使用C/S模式,客户端与服务通过DBus通信机制,在约定好接口后就可以独立开发,彼此不再依赖和影响.
    进程间通信主要有两种接入方式,一种时提供功能服务进程,其需要注册对外开发的方法或信号,一种时以客户端身份接入,访问其他进程提供的功能

    原文链接:https://blog.csdn.net/weixin_45492457/article/details/121486665

    https://blog.csdn.net/weixin_45492457/article/details/121486665?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166693100616782395358018%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166693100616782395358018&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-8-121486665-null-null.142v62pc_search_tree,201v3control_1,213v1t3_control2&utm_term=DBUS%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8&spm=1018.2226.3001.4187

    Socket:

    前面提到的管道,消息队列,共享内存,信号量和信号都是在同一台主机上进行进程间通信,如果想要跨网络和不同主机上的进程进行通信,则需要用到socket。

    实际上,Socket不仅可以跨网络和不同主机进行进程间通信,还可以在同一主机进行进程间通信。

    Socket是操作系统提供给程序员操作网络的接口,根据底层不同的实现方式,通信方式也不同。

    Socket的系统调用:

    int socket(int domain, int type, int protocal)
    
    • 1

    针对TCP的Socket通信:
    在这里插入图片描述

    服务端和客户端初始化Socket,得到文件描述符
    服务端调用bind,绑定IP和端口
    服务端调用listen,进行监听
    服务端调用accept,等待客户端连接
    客户端调用connect,向服务端发起连接请求。(TCP三次握手)
    服务端调用accept返回用于传输的Socket的文件描述符(和第一点得到的Socket不同)
    客户端使用write写入数据,服务端调用read读取数据
    客户端断开连接时会调用close,服务端也会调用close(TCP四次挥手)
    这里要注意的是,调用accept,连接成功得到的Socket是用来传输数据的,而第一次初始化Socket是用来监听的,是两个不同作用的Socket。

    针对UDP的Socket通信:

    在这里插入图片描述

  • 相关阅读:
    Android面试冲刺:2022全新面试题——剑指Offer(备战金九银十)
    Mysql(存储引擎)
    C/C++ 时间知识总结
    爱编程 why not AI编程
    第十五章·代理模式
    2023-10-5一些笔试题(1)
    App测试和Web测试的区别
    【学习笔记】杜教筛
    Python+Appium自动化测试-编写自动化脚本
    pacp格式文件分析
  • 原文地址:https://blog.csdn.net/dianqicyuyan/article/details/127569333