• 进程间通讯之 命名管道


    命名管道其实用的还是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

  • 相关阅读:
    beforeEach的应用
    小程序
    betterScroll的应用
    前端规划
    vue中下载文件如pdf及图片
    vue cli3.x项目创建及配置
    python读取excel文件中所有sheet表格:openpyxl模块(二)
    python访问excel基本用法:openpyxl模块(一)
    SQL优化:设置执行计划的显示格式
    sql优化实战:把full join改为left join +union all(从5分钟降为10秒)
  • 原文地址:https://www.cnblogs.com/wenluderen/p/4774974.html
Copyright © 2020-2023  润新知