最简单的NamedPiep程序[秋镇菜]-初学者看看
一个完整的NamedPipe分为服务器和客户端.服务器要先运行,客户端才能正常运行.所以先写服务器.
代码如下:
// namedpipe01server.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
const char* sPipeName = ".//pipe//HolgersTracer";
int main(int argc, char* argv[])
{
HANDLE hPipe = CreateNamedPipe(sPipeName, PIPE_ACCESS_INBOUND, PIPE_TYPE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 0, 0, 200, NULL);
if (!ConnectNamedPipe(hPipe, NULL))
return 0;
printf("Pipe created./r/n");
DWORD nReaded = 0;
char buffer[512];
while (ReadFile(hPipe, buffer, sizeof(buffer)-1, &nReaded, NULL))
{
buffer[nReaded] = 0;
printf(buffer);
printf("/r/n");
}
printf("Press any key to continue/r/n");
getch();
return 0;
}
运行服务器后,接下来是写客户端.
代码如下:
// namedpipe01.cpp : Defines the entry point for the console application.
//
#include <conio.h>
#include <windows.h>
#include <stdio.h>
char* sPipeName = ".//pipe//HolgersTracer";
char sbuf[8] = "1234567";
int main()
{
HANDLE hPipe = NULL;
hPipe = CreateFile(sPipeName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hPipe == INVALID_HANDLE_VALUE)
{
printf("Error creating./r/n");
return 0;
}
DWORD nWritten = 0;
if (WriteFile(hPipe, (BYTE*)sbuf, 8, &nWritten, NULL) == FALSE)
{
printf("Error writing./r/n");
return 0;
}
printf("Completed./r/n");
}
本人虽然从事开发多年,但对新技术很感兴趣,如果有错误,敬请指出,万分感激.
QQ:250947302
E-mail:cyin8@126.com
最简单的NamedPiep程序[秋镇菜]-初学者看看相关推荐
- 一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜
我在28岁生日那天电信一个副总劝我出来开公司算了,然后想了一天第二天就去工商局注册了,从有开公司的想法到工商局注册仅仅一天时间! 然后2003年8 月份拿到营业执照,根本不知道安全是怎么一回事情,找北 ...
- 很巧妙的进程防杀方法[秋镇菜原创]
刚刚学内核对象,想写个可以防杀的进程,但其他方法太高级, 本菜鸟不感高攀,想了几天,想到一个很本的办法,不正确的 方还请高手指点一下. 程序运行两个事例,每个实例互相监视另外的实例是否存在, 如果不存 ...
- 用__asm写c函数[秋镇菜]
想学SHELLCODE,所以必须会用汇编,这几天学了一点点东西,高手见笑,这是我的记事本,没什么技术含量. #include <stdio.h> void fn() { char sz[ ...
- 一些不错的C++网站[秋镇菜]
喜欢C++的朋友,你应该该也有自己喜欢,也认为不错的网站吧!我恳求你告诉我,请留言给我. http://www.boost.org/ Boost provides free peer-reviewed ...
- 驱动程序的专业术语-秋镇菜版
我自己整理,可能小部分不准确(还在整理中) WDM Win32 Driver Model(驱动程序模型) FDO ...
- 用Java编写一个最简单的桌面程序
使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序. Java的javax.swi ...
- 子程序调用与宏定义的异同_如何用数控系统进行简单的宏程序调用?老师傅告诉你,用G65就行...
什么是简单调用?很多人都不知道吧,如果想要深入操作宏, 就先要学会变量,学会变量之担,再去操作宏,就会变得非常的简单,今天给大家分享如何用G65进行简单的宏程序调用. 用户宏的简单宏调用是指在主程序中 ...
- 小程序生命周期_来,简单说说小程序的生命周期?
简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...
- 编写运行最简单的java程序——使用记事本编写java程序
编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...
最新文章
- 2014025679 《嵌入式系统程序设计》第五周学习总结
- 电脑台式计算机描述不可用,win7系统计算机描述不可用的解决方法
- TensorFlow 学习(3)——MNIST机器学习入门
- K8s 实践 | 如何解决多租户集群的安全隔离问题?
- 我的技术回顾那些与ABP框架有关的故事-2017年
- 如何从使用环境上区别光纤收发器?
- Lua虚拟机中的数据结构与栈
- 贾跃亭向全体债权人道歉!个人资产曝光:总额14亿美元,国内三套房
- mysql怎么精简_我这个mysql查询该如何精简,提高效率啊?
- pycharm 右键无法显示unittest框架解决右键只有unittest 运行如何取消右键显示进行普通run...
- linux 命令 单词,linux常用命令的英文单词缩写
- Time flies
- 机器学习(周志华)——决策树问题
- 《嵌入式Linux基础教程学习笔记一》
- spring mvc 静态资源拦截
- centos查看yum上jdk的版本
- UNITY TUIO的使用
- CentOS查看端口
- SAP系统 会计科目主数据详解
- H - Repeating Decimals