实现局域网广域网不同计算机之间直接调用对方类函数进行通讯的分裂式对象处理机制

采用C/C++编程的人员,对于不同进程、不同计算机之间的RPC对象通讯代理需要比较多,在window系统下常用的是DCOM,Linxu系统采用QT编程的经常会用到DBUS。

DCOM通讯性能很高的,本地进程通讯可以达到10000次/秒,但DCOM一般只能用在window系统;采用DBUS通讯代理则通讯性能很不尽如人意,本人刚开始使用DBUS做通讯代理,却发现其本地计算机之间的进程通讯次数一般只能600次/秒,而我的软件一般要实现10000次/秒左右,所以实在太慢了,而且DBUS还没有对象回调机制。

经过半年多的努力,终于实现了自己的分裂式跨平台对象代理机制,实现了本地Linux系统进程间通讯8000次/秒,window系统3000次/秒,跨计算机也可以达到2500次左右,基本满足了系统t通讯要求,而且代理机制还实现了对象回调功能。

为了比较完整实现分裂式跨平台对象代理机制,还开发了接口定义语言转换生成程序,接口函数调用采用无泄漏内存的设计方法,不会像微软DCOM通讯接口那样非常容易发生内存泄漏的问题。

     实现这个分裂式组件对象模型较复杂,需要完成的内容:

复杂的多线程通讯处理;异步通讯转同步处理;实现接口定义语言并实现C++接口代码自动生成机

       编写这个分裂式组件对象模型走了不少弯路,发现操作系统和QT的一些库不怎么好用。

       现在对于这个软件模块做了两次升级,

第一次升级:增加可以通过一台局域网计算机来中转转发连接到第三台计算机,这个转发功能在工控领域还有点作用

第二次升级,增加可以采用云端服务器来做中转转发,采用云端服务器中转就实现了两台无外网IP地址计算机可以直接通讯了,虽然这个通讯总是要经过云端服务器。

如果大家有什么建议和需求,可互相交流学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧童吃五谷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值