现在进程间的交互一般用什么技术呢?

Silence_Smile 2011-08-01 02:50:09
先在有两个应用程序:
程序A:提供对数据库的查询功能
程序B:希望通过程序A来查询数据库

程序B调用程序A提供的功能需要进程间的通信,我网上查到这样的应用可以用DDE,但是说DDE过时了,可以用OLE,貌似说OLE也过时了。本人新手,想知道目前这样的应用一般通过哪种方式来通信呢?另外如果大家对DDE和OLE属性的话麻烦也帮我介绍一下,谢谢
...全文
272 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnyman_lxh 2011-08-02
  • 打赏
  • 举报
回复
最好用socket,通用性\移植性很强
wszdzh 2011-08-01
  • 打赏
  • 举报
回复
用管道
ga6840 2011-08-01
  • 打赏
  • 举报
回复
如果需要效率
共享内存配合Event再好不过
但是开发会比较费时
ga6840 2011-08-01
  • 打赏
  • 举报
回复
如果需要效率
共享内存配合Event再好不过
但是开发会比较费时
xxq123321 2011-08-01
  • 打赏
  • 举报
回复
window消息WM_COPYDATA
管道
邮槽
共享内存
网络通信
向立天 2011-08-01
  • 打赏
  • 举报
回复
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 oyljerry 的回复:]

可以自己结合Event,WaitForSingleObject等类型来实现请求应答模型
[/Quote]
好,我研究研究,多谢
oyljerry 2011-08-01
  • 打赏
  • 举报
回复
可以自己结合Event,WaitForSingleObject等类型来实现请求应答模型
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 visualeleven 的回复:]

进程间通讯的方法:clipboard, message(e.g: WM_COPYDATA),memory file mapping,DDE,Pipe,Mailsolt,socket,RPC,Serial/Parallel Communication,COM/DCOM
[/Quote]希望大家可以讲的具体一点,这些名词我在百度也查到了,但是具体怎么来做这种请求-应答的模型,还是不太了解,只是希望大家有做过类似应用的能够指点一下,谢谢
na2650945 2011-08-01
  • 打赏
  • 举报
回复
共享内存不是进程间通信的基本模型么?
Eleven 2011-08-01
  • 打赏
  • 举报
回复
进程间通讯的方法:clipboard, message(e.g: WM_COPYDATA),memory file mapping,DDE,Pipe,Mailsolt,socket,RPC,Serial/Parallel Communication,COM/DCOM
向立天 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 silence_smile 的回复:]

引用 9 楼 oyljerry 的回复:

进程之间,可以用共享内存,速度快,大数据量.
socket,管道也都可以.不过socket一般用在不同机器之间

恩,我也觉得在一台机器上的话,走一遍TCP协议栈是不必要的开销。
共享内存的话可以实现这种请求-返回模型的交互么?有没有相关的demo提供给我参考下,谢谢
[/Quote]
应答可以通过管道辅助
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 erehmi 的回复:]

窗口消息: WM_COPYDATA

这里有个帖子: http://blog.csdn.net/sanfengshou/article/details/6524676
[/Quote]
WM_COPYDATA貌似不太好进行这种请求-应答的模型吧?我先试试看,谢谢
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 oyljerry 的回复:]

进程之间,可以用共享内存,速度快,大数据量.
socket,管道也都可以.不过socket一般用在不同机器之间
[/Quote]
恩,我也觉得在一台机器上的话,走一遍TCP协议栈是不必要的开销。
共享内存的话可以实现这种请求-返回模型的交互么?有没有相关的demo提供给我参考下,谢谢
oyljerry 2011-08-01
  • 打赏
  • 举报
回复
进程之间,可以用共享内存,速度快,大数据量.
socket,管道也都可以.不过socket一般用在不同机器之间
「已注销」 2011-08-01
  • 打赏
  • 举报
回复
窗口消息: WM_COPYDATA

这里有个帖子: http://blog.csdn.net/sanfengshou/article/details/6524676
向立天 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 silence_smile 的回复:]

引用 3 楼 akirya 的回复:

使用socket

在一台机器上也用Socket么?效率怎么样呢?
[/Quote]
可以
至于效率你可以自己试试看
「已注销」 2011-08-01
  • 打赏
  • 举报
回复
通过Windows窗口消息, 可以完成不同进程间的消息传递, 但是前提你要能找到接收窗口的句柄
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akirya 的回复:]

使用socket
[/Quote]
另外如果A和B不在一台机器上的话,能否用WebService来实现呢?
Silence_Smile 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akirya 的回复:]

使用socket
[/Quote]
在一台机器上也用Socket么?效率怎么样呢?
加载更多回复(3)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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