进程间通信——邮槽
2016-07-27 10:56
337 查看
1、服务器端
#include<windows.h> //包含头文件
#include<stdio.h>
int main() //主函数
{
HANDLE mail; //定义邮槽句柄
//创建邮槽
mail=CreateMailslot("\\\\.\\mailslot\\my",0,MAILSLOT_WAIT_FOREVER,NULL);
if(mail==INVALID_HANDLE_VALUE) //判断邮槽句柄
{
printf("创建邮槽失败!\r\n"); //提示信息
return 0;
}
else
{
printf("创建邮槽成功,正在读取数据……!\r\n");
char text[200]; //定义字符数组
DWORD readtext; //获取实际读取值
while(1)
{
if(ReadFile(mail,text,200,&readtext,NULL)) //读取数据
{
printf(text); //显示数据
}
}
}
Sleep(100000);
CloseHandle(mail);
return 0;
}
2、客户端
#include<windows.h> //包含头文件
#include<stdio.h>
int main() //主函数
{
HANDLE mail2; //定义邮槽句柄
char text[]="您好,this is a message"; //初始化消息
DWORD writetext; //获取实际发送值
mail2=CreateFile("\\\\.\\mailslot\\my",GENERIC_WRITE,FILE_SHARE_READ,
NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
//打开文件
if(INVALID_HANDLE_VALUE==mail2)
{
printf("邮槽打开失败!\r\n");
}
else
{
if(WriteFile(mail2,text,sizeof(text),&writetext,NULL)) //写入数据
{
Sleep(1000);
printf("数据写入成功\r\n"); //数据写入成功
}
else
{
printf("数据写入失败\r\n");
}
CloseHandle(mail2); //关闭句柄
}
Sleep(10000);
return 0;
}
#include<windows.h> //包含头文件
#include<stdio.h>
int main() //主函数
{
HANDLE mail; //定义邮槽句柄
//创建邮槽
mail=CreateMailslot("\\\\.\\mailslot\\my",0,MAILSLOT_WAIT_FOREVER,NULL);
if(mail==INVALID_HANDLE_VALUE) //判断邮槽句柄
{
printf("创建邮槽失败!\r\n"); //提示信息
return 0;
}
else
{
printf("创建邮槽成功,正在读取数据……!\r\n");
char text[200]; //定义字符数组
DWORD readtext; //获取实际读取值
while(1)
{
if(ReadFile(mail,text,200,&readtext,NULL)) //读取数据
{
printf(text); //显示数据
}
}
}
Sleep(100000);
CloseHandle(mail);
return 0;
}
2、客户端
#include<windows.h> //包含头文件
#include<stdio.h>
int main() //主函数
{
HANDLE mail2; //定义邮槽句柄
char text[]="您好,this is a message"; //初始化消息
DWORD writetext; //获取实际发送值
mail2=CreateFile("\\\\.\\mailslot\\my",GENERIC_WRITE,FILE_SHARE_READ,
NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
//打开文件
if(INVALID_HANDLE_VALUE==mail2)
{
printf("邮槽打开失败!\r\n");
}
else
{
if(WriteFile(mail2,text,sizeof(text),&writetext,NULL)) //写入数据
{
Sleep(1000);
printf("数据写入成功\r\n"); //数据写入成功
}
else
{
printf("数据写入失败\r\n");
}
CloseHandle(mail2); //关闭句柄
}
Sleep(10000);
return 0;
}
相关文章推荐
- 进程间通信之深入消息队列的详解
- 第14章进程间通信
- 进程间通信之管道与有名管道
- Linux环境进程间通信(二): 信号(上)
- Android 使用 AIDL 实现进程间通信,使用基本类型作为输入和输出参数
- 信号发送函数kill()和raise()
- 信号捕捉函数alarm()和pause()(转)
- 信号处理函数signal()和信号集函数组
- Head First C 学习日志 第十章 进程间通信 输入输出重定向
- Head First C 第十章 进程间通信 创建管道
- Head First C 学习日志 第十章 进程间通信 捕捉信号
- Head First C 第十章 进程间通信 闹钟
- 利用Use32.dll的SendMessage实现 进程间通信
- 《C++并发编程实战》读书笔记(1)
- Linux进程间通信共享内存
- Android利用LocalSocket实现Java端进程与C端进程之间的IPC
- 进程间通信
- 【网络编程学习笔记02】进程间通讯-邮槽
- 在Android Studio中使用AIDL实现进程之间的通信
- Unix IPC进程间通信