一、管道 + 异步I/O 本地通讯模型
1、客户端操作
发送请求
(1) 互斥上锁 CreateMutex, WaitForSingleObject
(2) 打开命名管道 OpenNamedPipe
(3) 等待管道是否可用 WaitNamedPipe
(4) 创建管道写事件 CreateEvent
(5) 往管道异步写数据 WriteFile
(6) 创建管道读事件 CreateEvent
(7) 从管道读取数据 ReadFile
(8) 关闭管道 CloseHandle(hPipe)
(9) 互斥解锁 CloseHandle(hMutex) / ReleaseMutex(hMutex)       2、服务段操作
(0) 创建命名管道 CreateNamedPipe
(1) 创建管道连接事件 CreateEvent
(2) 连接命名管道 ConnectNamedPipe 由管道连接事件判断是否有客户端连接到来
(3) 创建管道读事件 CreateEvent
(4) 从管道读取数据 ReadFile
(5) 创建管道写事件 CreateEvent
(6) 往管道写数据 WriteFile
(7) 刷新写缓冲数据 FlushFileBuffers
(8) 断开管道连接   DisconnectNamedPipe二、附录
1、互斥加锁
打开互斥锁:OpenMutex(MUTEX_ALL_ACCESS, FALSE, name)
创建互斥锁:CreateMutex(NULL, TRUE, name);
互斥上锁  :WaitForSingleObject(mutex, INFINITE);
互斥解锁  :CloseHandle(hMutex)
释放互斥锁:ReleaseMutex2、管道操作
创建命名管道    :CreateNamedPipe
等待管道是否可用: WaitNamedPipe
管道写操作      : WriteFile
管道读操作      : ReadFile
命名管道连接    :ConnectNamedPipe
命名管道断开连接:DisconnectNamedPipe
命名管道关闭    : CloseHandle3、事件操作
创建事件:CreateEvent
等待事件:WaitForSingleObject
设置事件: SetEvent
重置事件:ResetEvent
关闭事件:CloseHandle具体内容可以参考MSDN帮助手册.

Windows 命名管道 + 异步I/O模型相关推荐

  1. 浅析Windows命名管道Named Pipe

    目录 管道 命名管道Names Pipes 查看管道列表 命名管道的创建与访问 命名管道的利用 绕过防火墙 模拟令牌(System权限) C2 信道 MS17010和Named Pipe 管道 讲命令 ...

  2. windows命名管道

    命名管道是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节. 将命名管道作为一种网络编程方案时,它实际上建立了一个C/S通信体系,并在其中可靠的传输数据.命名管道服务器和客户机的区别在于:服务器 ...

  3. windows命名管道使用方法

    原文地址:https://www.cnblogs.com/lsh123/p/7435401.html 命名管道是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节. 将命名管道作为一种网络编程方案 ...

  4. 中断和执行子服务器,windows - 命名管道服务器,如何中断或超时等待客户端连接和传入数据 - 堆栈内存溢出...

    一些真实的代码,用于演示GUI应用程序中管道服务器端的异步使用: void wait_for_object(HANDLE object) { DWORD dw; MSG msg; for (;;) { ...

  5. java 命名管道_利用Windows命名管道实现IPC的一种有效方法

    我正在使用 jna 模块连接两个同时执行FFMPEG命令的进程.发送 SDTOUT 服务器端的FFMPEG命令到NampedPipe和receive STDIN 我就是这样捕捉的 STDOUT 并发送 ...

  6. 命名管道学习(简单例程)----Windows进程间通信

    管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机.通常我们把管道分为匿名管道和命名管道.但对于匿名管道的话,只能在本机上进程之间通信, ...

  7. java 命名管道_Java中命名管道的并发读/写(在Windows上)

    我正在尝试使用命名管道在Windows上使用命名管道提供C#应用程序和Java应用程序之间的通信,使用v01ver在此问题中描述的方法: How to open a Windows named pip ...

  8. 基于共享内存、信号、命名管道和Select模型实现聊天窗口

    基于共享内存.信号.命名管道和Select模型实现聊天窗口 问题模型 A.B两个进程通过管道通信,A 进程每次接收到的数据通过共享内存传递给A1进程显示,同理,B进程每次接收到的数据通过共享内存传递给 ...

  9. pythonwindows管道_Python进程间通信之命名管道(Windows)

    前面文章说了一下 Linux 命名管道的实现,今天看看 Windows 上我们怎么实现. 在 Windows 上的命名管道主要是通过调用 win32 api 的以下方法来实现的:win32pipe.C ...

最新文章

  1. python连接mongo_Python连接MongoDB操作
  2. 如何在 Ubuntu server 中设置 RainLoop Webmail
  3. 【Python】Modin,只需一行代码加速你的Pandas
  4. ABP入门系列(14)——应用BootstrapTable表格插件
  5. 微信小程序之验证码短信倒计时
  6. js实现(可实现局部打印)
  7. GPS原始坐标转百度地图坐标(纯C代码)
  8. Python实战项目—金融量化分析(数据的简单预处理)
  9. php openssl 处理pkcs8,openssl生成RSA格式私钥,转换为通用型PKCS8格式
  10. 浅谈从一维空间到十一维空间
  11. 网络计算机无法访问 没有权限,教您无法访问您可能没有权限使用网络资源怎么解决...
  12. 搜索引擎优化主要对网站哪些方面做优化
  13. Word2Vec实战
  14. 我决定切换到 Vue.js,不再使用 React!
  15. 【springcloud】Eureka 服务提供者 增加服务暴漏
  16. [转]淘宝的十年技术之路
  17. c语言printf输出语句_C语言中另一个printf()语句中的printf()语句
  18. 2、Prism的使用一
  19. Python爬取豌豆荚软件分类
  20. 小学计算机教海探航论文名字,教海探航获奖论文题目参考.doc

热门文章

  1. SpringMVC学习01之回顾Servlet
  2. 【数学和算法】初识卡尔曼滤波器(三)
  3. error C3861: “setw”: 找不到标识符
  4. Linux基础:利用SSH上传、下载(使用sz与rz命令)
  5. python numpy的部分函数
  6. 机器学习常见算法个人总结(面试用)
  7. 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机体系结构/并行与分布计算/存储系统
  8. Machine Learning week 11 quiz: Application: Photo OCR
  9. 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍
  10. 怎么查看python是32位还是64位的