当前位置: 首页 > news >正文

深圳做企业网站多少钱京东企业官网

深圳做企业网站多少钱,京东企业官网,进不了wordpress,wordpress 3.3.1漏洞Dual serial transport 概述 eRPC 的默认的设计模型是简单的主从模式,也就是设备A上运行服务,另一个设备B主动发起请求调用A的服务,但在实际的应用中,我们需要双向的请求,也就是说设备A,设备B互为主从&am…

Dual serial transport

概述

eRPC 的默认的设计模型是简单的主从模式,也就是设备A上运行服务,另一个设备B主动发起请求调用A的服务,但在实际的应用中,我们需要双向的请求,也就是说设备A,设备B互为主从,两台设备上都会运行服务供对方调用。在这种模式下,原有的串行通讯传输(SerialTransport)实现就不能满足要求,因为设备接收到的数据无法知道是给server的请求(Requst),还是给client的响应(Response)。

如果要实现上述的双向请求并不复杂,只要修改串行通讯传输(SerialTransport)的实现,在发送数据时,多发送一个数据类型的标志,这样接收方收到数据时先判断这个标志,如果是给server端的Request,后续的数据就让server接收,如果是给client端的Response,就让client接收。

由此就可以实现一个支持双向请求的串行数据传输(dual serial transport).通过只修改传输层,就可以让eRPC框架实现client/server混合运行。

实现逻辑

如下图是Dual serial transport的实现模型。

因为client/server混合运行时,client和server都会发送数据也都会接收数据,所以关键的问题就是通过数据类型标志(segType),让接收到的数据被正确的接收端(client或server)接收。
在这里插入图片描述

数据发送

为了防止client/server的数据发送能同时正常执行,设计了一个发送数据互斥锁(send_lock),使用互斥锁将client和server发送数据的操作严格区分开。

在发送正式数据之前先发送一个数据类型标志(segType)标志

数据接收

为了确保client/server能正确收到自己应该接收的数据,设计了三个数据接收信号量:

变量名说明备注
server_semaphoreserver 端数据接收信号量初始状态下server端接收请求数据时被此信号量阻塞,等待被开关线程收唤醒
client_semaphoreclient 端数据接收信号量初始状态下cliennt端接收响应数据时被此信号量阻塞,等待被开关线程收唤醒
switch_semaphore数据开关线程 数据接收信号量开关线程负责读取数据类型标志(segType),并根据标志唤醒server或client接收数据

当数据开关线程唤醒server或client接收数据后,自己就进入阻塞状态,等待server或client端的唤醒

当server或client被被开关线程收唤醒接收完数据后,会设置switch_semaphore信号量唤醒开关线程准备接收下一个数据类型标志(segType)

上述三个数据接收信号量和发送数据互斥锁定义在

erpc_setup_dual_serial.cpp

数据开关线程的实现在:

DualSerialTransport::serverThread

在原有的SerialTransport的数据发送函数基础上,DualSerialTransport 做了简单修改,增加了信号量等待和发送数据类型标志(segType)动作,参见:

DualSerialTransport::underlyingSend

在原有的SerialTransport的数据接收函数基础上,DualSerialTransport 增加了信号量等待动作,参见:

DualSerialTransport::underlyingReceive

测试验证

关于双向数据传输完整的测试代码参见

https://gitee.com/l0km/facelog/blob/dev3/facelog-client-cpp/dependencies/erpc/test/erpc_dual_test.cpp

http://www.sczhlp.com/news/56737/

相关文章:

  • 4 台主机怎么搭 Greenplum 集群?3 种方案优缺点全解析,生产环境必看!
  • 自己做签名网站wordpress时区
  • 唐山市城乡建设局网站网赌网站做流量渗透
  • 步骤怎么写网站seo培训
  • 网站建设规划书 预算安全达标建设网站
  • 佛山网站设计优化公司多媒体展厅的互动展示
  • 千图素材网站怎么样做一个个人网站
  • 企业网站建设规划书ppt建设工程有限公司 网站
  • 高端建站设计杭州建设职业技术学院招聘信息网站
  • 昆山建设工程招标网站网站建设的小故事
  • 推广网站挣钱 优帮云微网站开发策划
  • 突破矩形边界:探索PWA窗口控件叠加技术
  • 徐州做网站建设国内十强少儿编程机构
  • 织梦cms怎么搭建网站网站广告连接如何做
  • 定制网站建设功能报价表模板排名第一的网络游戏
  • wordpress 前台登录插件seo计费
  • 镇江网站建设 的公司购物系统
  • 网站seo推广平台采购合同
  • 精密科技东莞网站建设高德vr全景地图下载
  • 连江网站建设任务网站开发
  • 网站备案 接入商西部空间怎样上传网站
  • 想找私人做网站注册页面模板
  • lnmp 网站开发总结如何自己做网站界面
  • 在线图片编辑像素搜狗网站seo
  • 衡水做wap网站建设现在建网站挣钱吗
  • 江门网站推广公司深圳装修公司排行榜
  • 鹤壁公司做网站浙江省信息港入口
  • Linux pwd 命令使用说明书
  • Linux ls 命令使用说明书
  • 织梦做的网站后台怎么进域名注册和网站建设