利用油槽实现进程之间的通信

简介:   //   油槽只能实现  一个进程写  一个进程读取 服务器读取 客户端写入     在服务器端只需 创建油槽然后即可通过 ReadFile和 WriteFile就可以实现向油槽的读写功能 //   在客户端需要利用CreateFile来打开一个油槽 然后通过CreateFile...
 

//   油槽只能实现  一个进程写  一个进程读取 服务器读取 客户端写入     在服务器端只需 创建油槽然后即可通过 ReadFile和 WriteFile就可以实现向油槽的读写功能
//   在客户端需要利用CreateFile来打开一个油槽 然后通过CreateFile和ReadFile进行油槽的读写操作
//    油槽不仅能实现在本地进程之间的通信还可以实现网络进程之间的通信 
//    油槽名字的格式是 "\\\\.\\mailslot\\path"    如果服务端不在本地那么吧'.'换成主机名字 
//如果要实现全网的通信那么就把'.' 换成*  表示网内所有主机

 

///////服务器端代码

#include <iostream>
#include  "windows.h"
using namespace std ;
void main()
{
 HANDLE  hMailslot=::CreateMailslot("\\\\.\\mailslot\\mail",   //油槽的名称有固定格式
                                 0,  //指定可以写入到油槽的最大消息长度  0表示任意长度
            MAILSLOT_WAIT_FOREVER, //发生油槽读取时间的等待时间 这里是一直等待 如果0的话油槽没有声音就会立即返回
            NULL //油槽的安全结构属性默认为NULL
            ) ;
   if(hMailslot==INVALID_HANDLE_VALUE)
   {
    cout<<"油槽打开失败 !"<<endl ;
   }
 
 char buf[100] ; 
 DWORD  len ;
 while(1)
 {
  ::ReadFile(hMailslot,(void*)buf,100,&len,NULL) ;
  cout<<"客户端说:"<<buf<<endl ;

 }

}

 

 

/////客户端代码
#include <iostream>
#include "windows.h"
using namespace std ;
void main()
{

 HANDLE h1=::CreateFile("\\\\.\\mailslot\\mail",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE==h1)
 {
  cout<<"油槽打开失败"<<endl ;
  return ;
 }
   
 char buf[100]  ;
   DWORD len;
   while(1)
   {
   cout<<"请输入要写入到油槽的数据:"<<endl ;
   cin>>buf;
   ::WriteFile(h1,(LPVOID)buf,strlen(buf)+1,&len,NULL) ;
   }

 

 

 

}

目录
相关文章
|
7月前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
146 16
|
10月前
|
消息中间件 存储 供应链
进程间通信方式-----消息队列通信
【10月更文挑战第29天】消息队列通信是一种强大而灵活的进程间通信机制,它通过异步通信、解耦和缓冲等特性,为分布式系统和多进程应用提供了高效的通信方式。在实际应用中,需要根据具体的需求和场景,合理地选择和使用消息队列,以充分发挥其优势,同时注意其可能带来的复杂性和性能开销等问题。
|
10月前
|
存储 Unix Linux
进程间通信方式-----管道通信
【10月更文挑战第29天】管道通信是一种重要的进程间通信机制,它为进程间的数据传输和同步提供了一种简单有效的方法。通过合理地使用管道通信,可以实现不同进程之间的协作,提高系统的整体性能和效率。
【进程通信】信号的捕捉原理&&用户态与内核态的区别
【进程通信】信号的捕捉原理&&用户态与内核态的区别
|
12月前
|
Java Android开发 数据安全/隐私保护
Android中多进程通信有几种方式?需要注意哪些问题?
本文介绍了Android中的多进程通信(IPC),探讨了IPC的重要性及其实现方式,如Intent、Binder、AIDL等,并通过一个使用Binder机制的示例详细说明了其实现过程。
740 4
|
11月前
|
存储 Python
Python中的多进程通信实践指南
Python中的多进程通信实践指南
140 0
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
消息中间件 存储 安全
python多进程并发编程之互斥锁与进程间的通信
python多进程并发编程之互斥锁与进程间的通信
|
消息中间件 分布式计算 网络协议
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)
进程间通信(Inter-Process Communication, IPC)是计算机科学中的一个重要概念,指的是运行在同一系统或不同系统上的多个进程之间互相发送和接收信息的能力。IPC机制允许进程间共享数据、协调执行流程,是实现分布式系统、多任务操作系统和并发编程的基础。
164 0
从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)