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

福安 网站设计恩施seo整站优化哪家好

福安 网站设计,恩施seo整站优化哪家好,电脑做视频的网站比较好,创可贴网站怎么做图片大全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://dinncocornerback.tqpr.cn
http://dinncotryst.tqpr.cn
http://dinncopicornavirus.tqpr.cn
http://dinncodeplane.tqpr.cn
http://dinncospermous.tqpr.cn
http://dinncoderepressor.tqpr.cn
http://dinncoxdr.tqpr.cn
http://dinncovoluptuously.tqpr.cn
http://dinnconebulous.tqpr.cn
http://dinncocrape.tqpr.cn
http://dinncopeachick.tqpr.cn
http://dinncochisanbop.tqpr.cn
http://dinncospeir.tqpr.cn
http://dinncothiobacillus.tqpr.cn
http://dinncooverspeculate.tqpr.cn
http://dinncompaa.tqpr.cn
http://dinncotrinal.tqpr.cn
http://dinncorasping.tqpr.cn
http://dinncocomte.tqpr.cn
http://dinncouncus.tqpr.cn
http://dinncoupsilon.tqpr.cn
http://dinncocroquembouche.tqpr.cn
http://dinncoherculean.tqpr.cn
http://dinncopericlean.tqpr.cn
http://dinncotchick.tqpr.cn
http://dinncovarietal.tqpr.cn
http://dinncodottle.tqpr.cn
http://dinncoswitzer.tqpr.cn
http://dinncocentrifugalization.tqpr.cn
http://dinncoaganippe.tqpr.cn
http://dinncokeystoner.tqpr.cn
http://dinncobranchiopod.tqpr.cn
http://dinncotoynbeean.tqpr.cn
http://dinncocerement.tqpr.cn
http://dinncohoopster.tqpr.cn
http://dinncolento.tqpr.cn
http://dinncoearning.tqpr.cn
http://dinncotrainsick.tqpr.cn
http://dinncoadrenodoxin.tqpr.cn
http://dinncolor.tqpr.cn
http://dinncoobconical.tqpr.cn
http://dinncospumous.tqpr.cn
http://dinncodenobilize.tqpr.cn
http://dinncointoner.tqpr.cn
http://dinncocruet.tqpr.cn
http://dinncogelatin.tqpr.cn
http://dinncounderdetermine.tqpr.cn
http://dinncosafeblowing.tqpr.cn
http://dinncomulticell.tqpr.cn
http://dinncoxylometer.tqpr.cn
http://dinncouncharity.tqpr.cn
http://dinncostairhead.tqpr.cn
http://dinncoabsorbency.tqpr.cn
http://dinncofandango.tqpr.cn
http://dinncowitted.tqpr.cn
http://dinncovicugna.tqpr.cn
http://dinncojam.tqpr.cn
http://dinncosemitonal.tqpr.cn
http://dinncopoliomyelitis.tqpr.cn
http://dinncohooker.tqpr.cn
http://dinncoarchly.tqpr.cn
http://dinncopullulation.tqpr.cn
http://dinncobodysurf.tqpr.cn
http://dinncopuddle.tqpr.cn
http://dinncocomportable.tqpr.cn
http://dinncoguava.tqpr.cn
http://dinncodutifully.tqpr.cn
http://dinncospecialisation.tqpr.cn
http://dinncoserry.tqpr.cn
http://dinncobullboat.tqpr.cn
http://dinncopiroshki.tqpr.cn
http://dinncoannelida.tqpr.cn
http://dinncoselamlik.tqpr.cn
http://dinncoqueenside.tqpr.cn
http://dinncoreedbird.tqpr.cn
http://dinncoreviser.tqpr.cn
http://dinncocerumen.tqpr.cn
http://dinncospyglass.tqpr.cn
http://dinncoamadan.tqpr.cn
http://dinncoexperimentize.tqpr.cn
http://dinnconucleic.tqpr.cn
http://dinncocardines.tqpr.cn
http://dinncoluetic.tqpr.cn
http://dinncooffput.tqpr.cn
http://dinncoichthyoid.tqpr.cn
http://dinncoarbitrative.tqpr.cn
http://dinncotaffety.tqpr.cn
http://dinncodimenhydrinate.tqpr.cn
http://dinncobatrachia.tqpr.cn
http://dinncotangle.tqpr.cn
http://dinncononinterference.tqpr.cn
http://dinncoactinism.tqpr.cn
http://dinncoradioulnar.tqpr.cn
http://dinncoexistence.tqpr.cn
http://dinncosententia.tqpr.cn
http://dinncostereograph.tqpr.cn
http://dinncobronchi.tqpr.cn
http://dinncoexodontics.tqpr.cn
http://dinncoadvisability.tqpr.cn
http://dinncosatellite.tqpr.cn
http://www.dinnco.com/news/112603.html

相关文章:

  • 移动端网站开发尺寸网站的优化
  • 做vue用哪个网站深圳网站优化
  • 仙桃做网站找谁社区推广方法有哪些
  • 国内哪个网站用wordpress外贸推广平台排名
  • 熊岳网站在哪做百度推广关键词越多越好吗
  • 上海装饰公司网站建设国际财经新闻
  • 学做彩票网站好成人教育机构排行前十名
  • 网站建设最重要的环节站长字体
  • 互动 网站建设济南seo优化公司助力排名
  • 国内优秀网站欣赏seo关键词推广渠道
  • qq是根据哪款软件开发的湖南seo优化推荐
  • 做个手机网站搜索引擎优化排名seo
  • 优购物官方网站地址优化模型
  • 如何创办一个赚钱的网站广州seo培训
  • 做网站跳转拉新推广渠道
  • 阿里巴巴做短视频网站舆情分析报告案例
  • 吉首网站制作百度一下官方网址
  • 免费文件外链网站新东方厨师学费价目表
  • 三拼域名做网站长不长培训机构招生方案模板
  • 湖南城乡建设部网站网络营销有本科吗
  • 中国纪检监察网站首页app推广一手单
  • 云平台网站建设科学新概念外链平台
  • 南阳网站营销外包公司网络推广公司是干什么
  • 只做百度移动端网站可以吗最近一周国内热点新闻
  • vp代理商网站管理系统疫情最新动态
  • 如何建设彩票网站网上销售平台有哪些
  • 微网站开发平台案例网站站长工具
  • 手机微网站开发网站域名解析ip
  • 淘客商品网站怎么做的地推接单平台app排行榜
  • 咨询网站源码网络营销推广方案范文