讨论下,进程间通信的问题

sgyiliya 2020-05-08 03:40:07
网络上看了下,总结的几种进程间通信的办法,总感觉比较复杂。

我个人是认为,就是这个自我宿主方式的WCF很好用,做起来比较简单,跑起来也很稳定。如果有服务器,挂靠IIS的也不错。

但是,想请大侠们,给我介绍下,还有没有类似WCF这样的简单稳定的、能够实现实时双向通信的技术?
要求是:一方面能实现同一台电脑的不同的进程之间的实时双向通信,另一方面也能实现网络上两台电脑之间的不同的进程之间的实时双向通信。(webservice与WCF类似,也不算了)http ftp这些不算了

...全文
1007 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfjcloud 2020-05-14
  • 打赏
  • 举报
回复
引用 2 楼 sgyiliya 的回复:
[quote=引用 1 楼 无味无感 的回复:] 我记得Web Socke可以实现双向通信 https://edu.csdn.net/course/play/25610/352908
socket粘包的问题,可能还是无解啊。分包处理虽然可以,但是就不太好了。[/quote] 为啥说socket粘包问题无解?
hfjcloud 2020-05-14
  • 打赏
  • 举报
回复
引用 27 楼 兔子家族-二哥 的回复:
[quote=引用 14 楼 以专业开发人员为伍 的回复:] WCF沉重且有各种方言协议,而且基本上在用的也都是不支持“双向”的。 使用 websocket 是很好的选择,轻而且通用,包括凡是支持 html5 的浏览器和底层平台(比如各种手机)都支持。
哈哈哈,借用一下,使用WebSocket 可以使用 SignalR,这套都是比较成熟了,网上资料也不少。关键是入门简单。[/quote] node.js
jwh2004 2020-05-13
  • 打赏
  • 举报
回复
WCF比较老了,近5年大公司都比较少用了,推荐楼主看看WebApi
Super hand 2020-05-13
  • 打赏
  • 举报
回复
一方面能实现同一台电脑的不同的进程之间的实时双向通信,另一方面也能实现网络上两台电脑之间的不同的进程之间的实时双向通信。全双工的核心传输
dangerous- 2020-05-12
  • 打赏
  • 举报
回复
我觉得用户管道就可以解决的吧
  • 打赏
  • 举报
回复
引用 14 楼 以专业开发人员为伍 的回复:
WCF沉重且有各种方言协议,而且基本上在用的也都是不支持“双向”的。

使用 websocket 是很好的选择,轻而且通用,包括凡是支持 html5 的浏览器和底层平台(比如各种手机)都支持。



哈哈哈,借用一下,使用WebSocket 可以使用 SignalR,这套都是比较成熟了,网上资料也不少。关键是入门简单。
Sky Worker 2020-05-11
  • 打赏
  • 举报
回复
建议研究一下gRPC, 下一代技术。WCF太老了,负载高,速度慢,不好兼容于其它的技术
雨言yyds 2020-05-11
  • 打赏
  • 举报
回复
学到了学到了
by_封爱 版主 2020-05-11
  • 打赏
  • 举报
回复
引用 2 楼 sgyiliya 的回复:
socket粘包的问题,可能还是无解啊。分包处理虽然可以,但是就不太好了。
你没看到论坛有一个帖子 人家说 什么协议组包 都是全自动的 你快上
sgyiliya 2020-05-11
  • 打赏
  • 举报
回复
感谢各位大侠,初步打算重点研究一下thrift, 顺便问下,同时支持C++,Java,C#,的RPC框架,还有哪些?
泡泡龙 2020-05-10
  • 打赏
  • 举报
回复
RPC开源代码很多很多
丁劲犇 2020-05-10
  • 打赏
  • 举报
回复
可以用管道。这个东西里有标准输入输出管道的另类用法,还带tcp的分布式。 https://github.com/goldenhawking/taskBus/blob/master/documents/taskbus_zh_CN.md
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 12 楼 bluedoctor 的回复:
类似WCF这样的简单稳定的、能够实现实时双向通信的技术? ------------- 有,iMSF框架,使用WCF为通信框架,利用它的双工TCP通信功能,设计开发的一个实时消息通信系统,支持点对点和一对多的消息订阅和推送,以及服务器回调客户端任意函数,使用简单,详细内容可以参考这个入门:《“一切都是消息”--iMSF(即时消息服务框架)入门简介
好的,感谢。会花时间好好看看。 个人认为,java阵营确实有很多好的理念,但是微软阵营也不弱。两个阵营不能很好的契合起来,应该不是技术的问题,是利益的问题。
bluedoctor 2020-05-09
  • 打赏
  • 举报
回复
类似WCF这样的简单稳定的、能够实现实时双向通信的技术?
-------------
有,iMSF框架,使用WCF为通信框架,利用它的双工TCP通信功能,设计开发的一个实时消息通信系统,支持点对点和一对多的消息订阅和推送,以及服务器回调客户端任意函数,使用简单,详细内容可以参考这个入门:《“一切都是消息”--iMSF(即时消息服务框架)入门简介
ying1234 2020-05-09
  • 打赏
  • 举报
回复
引用 10 楼 wanghui0380 的回复:
netmq,akka.net,ProtoAct,微软的Orleans 这几个说起来还是毕竟有意思 netmq------是zeromq的net实现版本------zeromq是一个非常流行的C++项目,作者已经陪上帝了(愿作者安息),不过这项目本身因为太流行,所以有人继续维护 (python的人也经常使用因为python的人其实最痛苦的也是怎么通讯,以前python都是玩算法,玩科学的,根本不考虑生产。现在要跟人配合了,如何通讯也就成了问题) akka.net------------是akka的net实现版本------akka本身是Scala语言编写(因为java的人也羡慕erlang那种天生就是为分布通讯的简单优雅实现) ProtoAct--------------这个是后进,同样是仿照erlang,提供Go和net的接口 Orleans---------这个是微软的,不过我个人不太喜欢。太重了,而且既然net core了,那么和其他语种配合才是问题。前面3个至少你从描述都知道,他们起码都是跨语种的协议。而微软这个,理论上可以跨语种,不过谁来研究他,来做支持呢?就像你说wcf,俺们用没问题,虽然有坑,不过基本都能跨过去。但是你说python,java,go跟你配合,怎么弄?让java的对接你的wcf,又得折腾了。折腾好了没问题,折腾出毛病,一准是“你们net啥玩意,搞这么复杂还一堆毛病”
也是,以前想弄个wcf服务供php端调用,对方一听说是wcf,连连摇头,说以前他和wcf对接过,麻烦死了,只好放弃了。
wanghui0380 2020-05-09
  • 打赏
  • 举报
回复
netmq,akka.net,ProtoAct,微软的Orleans 这几个说起来还是毕竟有意思 netmq------是zeromq的net实现版本------zeromq是一个非常流行的C++项目,作者已经陪上帝了(愿作者安息),不过这项目本身因为太流行,所以有人继续维护 (python的人也经常使用因为python的人其实最痛苦的也是怎么通讯,以前python都是玩算法,玩科学的,根本不考虑生产。现在要跟人配合了,如何通讯也就成了问题) akka.net------------是akka的net实现版本------akka本身是Scala语言编写(因为java的人也羡慕erlang那种天生就是为分布通讯的简单优雅实现) ProtoAct--------------这个是后进,同样是仿照erlang,提供Go和net的接口 Orleans---------这个是微软的,不过我个人不太喜欢。太重了,而且既然net core了,那么和其他语种配合才是问题。前面3个至少你从描述都知道,他们起码都是跨语种的协议。而微软这个,理论上可以跨语种,不过谁来研究他,来做支持呢?就像你说wcf,俺们用没问题,虽然有坑,不过基本都能跨过去。但是你说python,java,go跟你配合,怎么弄?让java的对接你的wcf,又得折腾了。折腾好了没问题,折腾出毛病,一准是“你们net啥玩意,搞这么复杂还一堆毛病”
  • 打赏
  • 举报
回复
MQ呀,不是号称分布式事务统一通信么
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 7 楼 wanghui0380 的回复:
有句很老的歌词,很贴切的形容这里的风格“不理不问啊不想” 你这些东西,其实很早就被通用化了。只是这里的人也就只剩那句歌词了。 netmq,akka.net,ProtoAct,微软的Orleans 全是此类,单进程内通讯,本机多进程通讯,网络通讯。 可能akka的资料多点,我就用akka说。 对于你来说只是需要本机单进程能调试通过,你的系统就完成了。因为剩下的只是修改配置,你让什么方法(他叫Actor)跟谁通讯他就跟谁通讯。 再说点后话,当然这些东西基于配置,简单的玩意你就手动配就好。如果复杂的分布式网络,建议加入etcd,zoopkeeper这里进行全局统一配置
好的,感谢。这些要花时间好好看看。
wanghui0380 2020-05-09
  • 打赏
  • 举报
回复
有句很老的歌词,很贴切的形容这里的风格“不理不问啊不想” 你这些东西,其实很早就被通用化了。只是这里的人也就只剩那句歌词了。 netmq,akka.net,ProtoAct,微软的Orleans 全是此类,单进程内通讯,本机多进程通讯,网络通讯。 可能akka的资料多点,我就用akka说。 对于你来说只是需要本机单进程能调试通过,你的系统就完成了。因为剩下的只是修改配置,你让什么方法(他叫Actor)跟谁通讯他就跟谁通讯。 再说点后话,当然这些东西基于配置,简单的玩意你就手动配就好。如果复杂的分布式网络,建议加入etcd,zoopkeeper这里进行全局统一配置
sgyiliya 2020-05-09
  • 打赏
  • 举报
回复
引用 4 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
如果局限在本机,可以用管道(pipe)
好的,下次试试看。但最好还是能实现非本机的。
加载更多回复(9)
Linux系统提供了各种系统调用API用于进程之间的通信:    无名管道PIPE    命名管道FIFO    消息队列    共享内存    信号量    文件锁    信号signal....其中还包括system V和POSIX 两种接口标准,除此之外,Linux系统自身还扩展了自己的一套API接口用于进程间通信,比如signalfd、timerfd、eventfd等。本视频教程为《Linux系统编程》第05期,本期课程将会带领大家学习Linux下将近15种进程间通信IPC工具的使用,了解它们的通信机制、编程实例、使用场景、内核中的实现以及各自的优缺点。本课程会提供PDF版本的PPT课件和代码,学员购买课程后可到课程主页自行下载嵌入式自学路线指导图:------------------------------------------------------------------------------------------------------                   《嵌入式工程师自我修养》嵌入式自学系列教程                                          作者:王利涛------------------------------------------------------------------------------------------------------一线嵌入式工程师精心打造,嵌入式学习路线六步走: 第 1 步:Linux三剑客零基础玩转Linux+UbuntuGit零基础实战:Linux开发技能标配vim从入门到精通基础篇:零基础学习vim基本命令vim从入门到精通定制篇:使用插件打造嵌入式开发IDEmakefile工程实践基础篇:从零开始一步一步写项目的Makefilemakefile工程实践第2季:使用Autotools自动生成Makefile软件调试基础理论printf打印技巧Linux内核日志与打印使用QEMU搭建u-boot+Linux+NFS嵌入式开发环境第 2 步:C语言嵌入式Linux高级编程第1期:C语言进阶学习路线指南第2期:计算机架构与ARM汇编程序设计第3期:程序的编译、链接和运行原理第4期:堆栈内存管理第6期:数据存储与指针第7期:嵌入式数据结构与Linux内核的OOP思想第8期:C语言的模块化编程第9期:CPU和操作系统入门      搞内核驱动开发、光会C语言是不行的!      你还需要学习的有很多,包括:计算机体系架构、ARM汇编、程序的编译链接运行原理、CPU和操作系统原理、堆栈内存管理、指针、linux内核中的面向对象思想、嵌入式系统架构、C语言的模块化编程.....第 3 步:Linux系统编程第00期:Linux系统编程入门第01期:揭开文件系统的神秘面纱第02期:文件I/O编程实战第03期:I/O缓存与内存映射第04期:打通进程与终端的任督二脉第05期:进程间通信-------------------we are here!‍    第 4 步:Linux内核编程‍    练乾坤大挪移,会不会九阳神功,是一道坎。搞驱动内核开发,懂不懂内核也是一道坎。第 5 步:嵌入式驱动开发    芯片原理、datasheet、硬件电路、调试手段、总线协议、内核机制、框架流程....第 6 步:项目实战    嵌入式、嵌入式人工智能、物联网、智能家居...

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧