[C++] socket -7 [邮槽]

简介:


 

::利用邮槽实现windons进程通信

::一般情况下CreateMailslot()常被使用在进程通信的服务器上,在客户端则是用函数CreateFile()打开指定的邮槽之后进行相关的操作。

::将通过有草读取数据的通信一方成为服务器,而通过邮槽写入数据的一方成为客户端。

复制代码
 1 /*
 2 服务器端
 3 */
 4 #include<windows.h>
 5 #include<stdio.h>
 6 void main()
 7 {
 8     HANDLE mail;//定义邮槽句柄
 9     mail=CreateMailslot("\\\\.\\mailslot\\mysolt",0,MAILSLOT_WAIT_FOREVER,NULL);//创建邮槽
10     if(mail==INVALID_HANDLE_VALUE)//判断邮槽句柄
11     {
12         printf("创建邮槽失败!\n");
13         CloseHandle(mail);
14     }
15     else
16     {
17         const char text[200];//定义字符数组
18         DWORD readtext;//获取实际读取值
19         printf("创建邮槽成功!正在读取数据..\r\n");//[[接下来等待数据客户端写数据,客户端一旦写好就读出数据]
20         if(ReadFile(mail,text,200,&readtext,NULL))//读取数据
21         {
22             printf(text);
23         }
24         else
25         {    
26             printf("\r\n数据读取失败!\n");
27         }
28     }    
29     CloseHandle(mail);//关闭邮槽
30     Sleep(10000);
31     return;
32 }
复制代码
复制代码
 1 /*
 2 客户端
 3 */
 4 #include<windows.h>
 5 #include<stdio.h>
 6 void main()
 7 {
 8     HANDLE mail2;//定义邮槽句柄
 9     char text[]="您好,this is a message";//初始化消息
10     DWORD writetext;//实际发送值
11     mail2=CreateFile("\\\\.\\mailslot\\mysolt",GENERIC_WRITE,FILE_SHARE_READ,
12         NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//打开文件
13     if(INVALID_HANDLE_VALUE==mail2)
14     {    
15         printf("邮槽打开失败!\r\n");
16     }
17     else
18     {    
19         if(WriteFile(mail2,text,sizeof(text),&writetext,NULL))//写入数据
20         {    
21             Sleep(1000);
22             printf("数据写入成功!\n");
23         }
24         else 
25         {
26             printf("数据写入失败!\n");
27         }
28         CloseHandle(mail2);//关闭句柄
29     }
30     Sleep(10000);
31     return;
32 }
复制代码
相关文章
|
6月前
|
存储 网络协议 Ubuntu
【C++网络编程】Socket基础:网络通讯程序入门级教程
【C++网络编程】Socket基础:网络通讯程序入门级教程
150 7
|
6月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
288 0
|
6月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
222 7
|
存储 Cloud Native Linux
C++封装了socket通信类
C++封装了socket通信类
|
网络协议 Linux C语言
linux下CC++网络编程基本:socket实现tcp和udp的例子
linux下CC++网络编程基本:socket实现tcp和udp的例子
235 0
|
5月前
|
缓存 网络协议 Linux
c++实战篇(三) ——对socket通讯服务端与客户端的封装
c++实战篇(三) ——对socket通讯服务端与客户端的封装
121 0
|
6月前
|
存储 网络协议 数据可视化
C++实现socket通信
了解如何实现socket通信以及TCP连接的过程中发生了什么
97 1
|
6月前
|
C++
C++实现Socket连接通信
C++实现Socket连接通信
57 1
|
6月前
C++socket客户端select异步连接发送接收数据
C++socket客户端select异步连接发送接收数据
99 0
|
存储 网络协议 Unix
C++项目实战-socket编程
C++项目实战-socket编程
79 1