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

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

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

 /*
服务器端
*/
#include<windows.h>
#include<stdio.h>
void main()
{
HANDLE mail;//定义邮槽句柄
mail=CreateMailslot("\\\\.\\mailslot\\mysolt",,MAILSLOT_WAIT_FOREVER,NULL);//创建邮槽
if(mail==INVALID_HANDLE_VALUE)//判断邮槽句柄
{
printf("创建邮槽失败!\n");
CloseHandle(mail);
}
else
{
const char text[];//定义字符数组
DWORD readtext;//获取实际读取值
printf("创建邮槽成功!正在读取数据..\r\n");//[[接下来等待数据客户端写数据,客户端一旦写好就读出数据]
if(ReadFile(mail,text,,&readtext,NULL))//读取数据
{
printf(text);
}
else
{
printf("\r\n数据读取失败!\n");
}
}
CloseHandle(mail);//关闭邮槽
Sleep();
return;
}
 /*
客户端
*/
#include<windows.h>
#include<stdio.h>
void main()
{
HANDLE mail2;//定义邮槽句柄
char text[]="您好,this is a message";//初始化消息
DWORD writetext;//实际发送值
mail2=CreateFile("\\\\.\\mailslot\\mysolt",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();
printf("数据写入成功!\n");
}
else
{
printf("数据写入失败!\n");
}
CloseHandle(mail2);//关闭句柄
}
Sleep();
return;
}

[C++] socket -7 [邮槽]的更多相关文章

  1. [Win]进程间通信——邮槽Mailslot

    进程间通信 进程的地址空间是私有的.出于安全性的目的,如果一个进程不具有特殊的权限,是无法访问另外一个进程的内存空间的,也无法知道内存中保存的数据的意义.但是在一些具体的应用情况下需要多个进行相互配合 ...

  2. windows 邮槽mailslot 在服务程序内建立后客户端无权限访问(GetLastError() == 5)的问题

    邮槽创建在服务程序内,可以创建成功, 但外部客户端连接时 m_hMailslot = CreateFile("\\\\.\\mailslot\\zdpMailslot",GENER ...

  3. window API一天一练之邮槽

    邮槽通信的进程分为服务端和客户端.服务端创建邮槽,客户端通过邮槽名打开邮槽,获得句柄后可以向邮槽写数据. 邮槽通信是单向通信,只能由客户端向服务端发送数据.下面来看看有关邮槽的几个API HANDLE ...

  4. 邮槽 匿名管道 命名管道 剪贴板 进程通讯 转自http://www.cnblogs.com/kzloser/archive/2012/11/04/2753367.html#

    邮槽 通信流程: 服务器 客户端 注意: 邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输 邮槽可以实现一对多的单向通信,我们可以利用这个特点编写一个网络会议通知系统,而且实现这一的系 ...

  5. 【IPC进程间通讯之中的一个】邮槽MailSlot

    IPC进程间通信+邮槽MailSlot                IPC(Inter-Process Communication.进程间通信).        现代计算机採用虚拟内存机制,为进程提 ...

  6. c++下使用邮槽实现进程间通信

    Windows API提供了邮槽和命名管道两种机制来实现进程间通信,在这里使用C++实现邮槽. 邮槽是Windows提供的一种进程间单向通信的机制,进程中的一方只能读取(或写入)数据,而另一方只能写入 ...

  7. Windows网络编程笔记3 ---- 邮槽和命名管道

    邮槽和命名管道的使用方法也很简单,只需几个有限的函数就可以实现双方的通信. 第三.邮槽 邮槽----进程间通信机制. 通过邮槽客户进程可以将消息通过广播给一个或多个服务进程.这是一个单向通信机制,缺点 ...

  8. [Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

    3D相关开发 [direct-X] 1.direct-X最小框架 [OpenGL] 1.环境搭建及最小系统 [OpenGL] 2.企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [ ...

  9. [C++] socket -8 [命名管道]

    ::命名管道不但能实现同一台机器上两个进程通信,还能在网络中不同机器上的两个进程之间的通信机制.与邮槽不同,命名管道是采用基于连接并且可靠的传输方式,所以命名管道传输数据只能一对一进行传输. /* 命 ...

随机推荐

  1. makefile多目录的.c 格式.cpp混合编译

    # # c.cpp混合编译的makefile模板 # # BIN = test.exe CC = gcc CPP = g++ #这里只加入库头文件路径及库路径 INCS = -I"c:/mi ...

  2. 计算机病毒实践汇总四:netcat使用方法

    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. netcat概述 (1)特性 "TCP/IP协议栈瑞士军刀",可以被用在支持端口扫描. ...

  3. springMVC + Spring + MyBatis 整合

    整理下SSM(基于注解)的整合 1. web.xml 配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  4. js实现倒计时及时间对象

    JS实现倒计时效果代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> ...

  5. Javascript函数、构造函数、原型、类和对象

    函数 函数是JavaScript中特殊的对象,对函数执行typeof运算会返回字符串"function",因为函数也是对象,他们可以拥有属性和方法. 静态方法 函数在JS中定义了类 ...

  6. NSMutableAttributedString(改变文字颜色)

    //类型 //创建一个label    UILabel *label1=[[UILabel alloc]initWithFrame:CGRectMake(130, 60,250, 150)];     ...

  7. cadence学习之——原理图库的添加及器件的放置

    画原理图,库是必不可少的,库有cadence自带的,也可以自己建自己的库,然后在画原理图工程时, 这些库都需要被添加进原理图工程才能使用. 1.库的添加 打开Place Part属性框,操作如下: ( ...

  8. dojo 加载Json数据

    1.今天研究了dojo datagrid加载WebService后台传上来的数据.研究来研究去发现他不是很难.用谷歌多调试一下就好了. 2.看很多例子,这个例子能够更好的帮我解决问题:https:// ...

  9. log4net配置与初始化

    1.配置文件: <?xml version="1.0" encoding="utf-8" ?> <configuration>   &l ...

  10. 将asp.net页面弄成伪静态

    在Web.config中写: <RewriterConfig>     <Rules> <RewriterRule>         <LookFor> ...