您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
Window进程通信方式有哪些
 
作者:主的器皿 来源:CSDN 发布于 2015-7-16
   次浏览      
 

1.进程与进程通信。

进程是装入内存并准备执行的程序。每个进程都有私有的虚拟地址空间,由代码、数据、系统资源(如文件等)组成。

IPC(interprocess communication)进程通信是指不同进程间数据共享和数据交换。

2.进程通信方法

(1)文件映射。Memory-Mapped Files

文件映射是进程把文件内容当做自己的一块内存地址对待,通过指针操作读取文件内容,而不是IO操作。

Win32 API允许多个进程访问同一文件对象,实现对文件共享。

文件映射只适用于本地机器,不适用于网络,开发者还必须控制进程同步。

(2)共享内存。Shared Memory

共享内存是文件映射一种的特殊情况。

共享内存是用文件映射对象来实现的,只能运行于本地进程之间。

(3)管道。Pipe

管道是拥有两个端点通信句柄的进程间的通信方式。分为单向和双向。单向是指一个端点写,另一个端点读。

管道分为匿名管道和命名管道。匿名管道适用于父进程和子进程、两个子进程之间。匿名管道不能在网上和不相关进程间使用。命名管道适用于不相关的进程和不同计算机之间。命名管道在网络上同时和多个管道通信会困难许多。

(4)邮件槽。Mailslots

邮件槽提供单向通信,但一个进程可以同时是邮件槽服务器和邮件槽客户,实现双向通信。

邮件槽类似命名管道,但是通过不可靠的UDP传输,命名管道采用可靠地链接传输。

邮件槽具有广播信息的能力和简化的编程接口,不失为应用程序发送接收消息的一种选择。

(5)剪切板 Clipped Board windows平台

剪切板实质是Win32 API中一组传输数据的函数和消息。

剪切板只适用于Windows应用程序,不适用于网络。

(6)动态数据交换 DDE windows平台

DDE是利用共享内存实现进程间数据交换的方式。DDE三种数据交换方式:冷链,数据交换一次性数据传输,与剪切板类似;温链,数据交换时服务器通知客户,客户请求数据;热链,数据交换时服务器自动给客户发送数据。

DDE适用于单机或网络不同计算机应用程序之间。基于Windows的应用程序支持DDE。

(7)对象链接与嵌入 OLE windows平台

OLE拥有管理多种数据格式的复合文档。

同DDE类似,大多数Windows应用程序支持。

(8)动态链接库 DLL windows平台

Win32动态链接库中的全局数据供调用DLL的所有进程共享。

DLL数据共享并不安全,建议用带有权限控制的共享内存方法。

(9)远程过程调用 RPC windows平台

Win32 API提供的RPC可以使用远程调用函数,适用于单机和网络不通进程,开发者可以可以建立高性能、紧密耦合的分布式应用程序。

(10)Sockets 跨平台

Windows Sockets网络编程接口,通过Sockets实现进程通信的网络应用程序越来越多,主要原因是Socket的跨平台性质比其他IPC机制好的多。socket的唯一缺点是支持的是底层通信操作,使得单机的进程间进行数据传递不方便。

(11)WM_COPYDADA消息,Windows平台单机环境。

功能强大鲜为人知,当一个应用向另一个应用传送数据时,发送方只需使用调用SendMessage函数,参数是目的窗口的句柄、传递数据的起始地址、WM_COPYDATA消息。接收方只需像处理其它消息那样处理WM_COPY DATA消息,这样收发双方就实现了数据共享。

它在底层实际上是通过文件映射来实现的。

   
次浏览       
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS

面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践

锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...