paip.c++ 进程间通信方法大总结
作者Attilax , EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
进程间通信方法
进程间通信主要包括管道, 系统IPC(包括消息队列,信号,共享存储), 套接字(SOCKET).文件交换,注册表,外设,
1、剪贴板Clipboard:
2、窗口消息 标准的Windows消息以及专用的WM_COPYDATA消息 SENDMESSAGE()接收端必须有一个窗口
3、使用共享内存方式(Shared Memory)
4、动态数据交换(DDE)通过维护全局分配内存使的应用程序间传递成为可能
5、消息管道(Message Pipe)
6、邮件槽(Mailslots)
8、Internet通信 它让应用程序从Internet地址上载或下载文件
9、RPC:远程过程调用,很少使用,因其与UNIX的RPC不兼容。
10、串行/并行通信(Serial/Parallel Communication)
它允许应用程序通过串行或并行端口与其他的应用程序通信
11、COM/DCOM通过COM系统的代理存根方式进行进程间数据交换,但只能够表现在对接口 函数的调用时传送数据,通过DCOM可以在不同主机间传送数据。
管道包括三种:
3)命名管道:name_pipe, 去除了第二种限制,可以在许多并不相关的进程之间进行通讯.
1)普通管道PIPE, 通常有两种限制,一是半双工,只能单向传输;二是只能在父子或者兄弟进程间使用.
2)流管道s_pipe: 去除了第一种限制,可以双向传输.
技术挑型://
/
在快速局域网 (LAN) 环境中,传输控制协议或 Internet 协议 (TCP/IP) 套接字客户端和命名管道客户端在性能方面不相上下。但是,网络速度越慢(如在广域网 (WAN) 或拨号网络上),TCP/IP 套接字客户端与命名管道客户端的性能差异越明显。这是因为进程间通讯 (IPC) 机制在对等项间的通讯方法不同。
一般情况下,套接字SOCKET在慢速 LAN、WAN 或拨号网络中效果较佳,而当网络速度不成问题时命名管道则是更好的选择,因为其功能更强、易于使用且提供多种配置选项。
参考:
命名管道(NamePipe) 与 TCP-IP套接字
VC++中进程间相互通信的十一种方法 _天极网.htm