// 油槽只能实现 一个进程写 一个进程读取服务器读取 客户端写入 在服务器端只需 创建油槽然后即可通过 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) ;
}
}
分享到:
相关推荐
使用windows api 油槽来进行 不同进程通信
-----------------------------------------------...也可以像命名管道一样用于任意进程间通信 但要注意的是 油槽的创建者进程只能从油槽中读取数据 使用者进程只能写入数据 油槽的创建 数据的读写 油槽的广播通信
利用油槽实现windows下进程之间的通信,注释比较详细
c++进程通信方式中的油槽 实现通信 做成一个简易的会议发布系统 压缩包中有两个工程,一个发送 一个接收,可以在本机以及网络上使用
进程间通信最基本的例子 包括了剪贴板 父子进程 命名管道通信 还有油槽通信 刚刚接触这方面的可以下下来参考学习
进程间通讯之油槽通讯,编译环境为VS2013Update5或者更高
V形盛油槽模具的CAD_CAM设计.pdf
行业资料-电子功用-利用带有低压侧电机和高压侧油槽的壳体的压缩机的介绍分析.rar
#Signal# 信号和槽用于对象之间的通信。 信号和槽机制是 Qt 的一个核心特性。 发生特定事件时发出signal 。 slot是响应特定signal而调用的函数。 您可以将任意数量的信号连接到单个插槽,一个信号可以连接到任意数量...
圆片油槽分选机sw20可编辑.rar
行业资料-交通装置-一种油槽及车辆.zip
行业资料-交通装置-一种油槽及汽车.zip
行业资料-交通装置-一种油槽车下油箱.zip
行业分类-设备装置-一种金属油槽的打火机.zip
电子政务-用于电镀除油槽的清洗机构.zip
电子政务-放电加工机的油槽安装机构.zip
电子政务-发电机油槽溢油检测装置.zip
行业分类-电子-一种水轮发电机油槽进出水法兰结构
电子政务-发电机推力油槽油雾回收装置.zip