zoukankan      html  css  js  c++  java
  • 进程间通讯之 命名管道

    命名管道其实用的还是API函数,我估计是底层应该是操作系统 分配了一块单独的内存空间,两个程序或是多个程序都可以对这块内存进行读写。

    这些所谓的管道API函数,就是我们编程人员操作这些内存空间的方法。

    ×××××××××××××××××××××××××××××××××××××

    用到的API函数

    管道服务器首次调用CreateNamedPipe()函数时,使用nMaxInstance参数指定了能同时存在的管道实例的最大数目。服务器可以重复调用CreateNamedPipe()函数去创建管道新的实例,直至达到设定的最大实例数。下面给出CreateNamedPipe()的函数原型:

    HANDLE CreateNamedPipe(             
    LPCTSTR lpName, // 指向管道名称的指针              
    DWORD dwOpenMode, // 管道打开模式              
    DWORD dwPipeMode, // 管道模式              
    DWORD nMaxInstances, // 最大实例数              
    DWORD nOutBufferSize, // 输出缓存大小              
    DWORD nInBufferSize, // 输入缓存大小              
    DWORD nDefaultTimeOut, // 超时设置              
    LPSECURITY_ATTRIBUTES lpSecurityAttributes // 安全属性指针              
    );
    

     目的已经实现了,详细见孙鑫的书  VC++ 深入浅出

    第一步:创建一个解决方案
    第二步:添加两个对话框程序
    第三步:添加 List Edit Button控件 ,修改ID 和Caption,调整各自的位置。
    第四步:完成了A 的代码
    第五步:完成了B的代码
    第六步:调整了A的创建管道的代码
    第七步:编译 调试 运行 结果OK

    ××××××××××××××××××××××××××××××××
    后记:上述功能只是测试管道功能的可行性,为了实现稳定可靠的通讯。
    需要做出以下改进:
    1)创建一个工作线程,不断监听是否有数据管道里面过来,如果有的话立即处理,不然时间长了缓存就满了
    2)

    ××××××××××××××××

    源代码如下:链接: http://pan.baidu.com/s/1gdrpzeN 密码: 7in5

  • 相关阅读:
    Vue双向绑定的实现原理系列(一):Object.defineproperty
    TCP协议中的三次握手和四次挥手
    一切事物皆对象_进阶篇
    一切事物皆对象_基础篇
    自成一派的正则表达式
    超好用的模块
    软件目录开发规范
    迭代器与生成器
    不怎么好吃的语法糖
    你可造什么是函数
  • 原文地址:https://www.cnblogs.com/wenluderen/p/4774974.html
Copyright © 2011-2022 走看看