一个完整的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程序[秋镇菜]-初学者看看相关推荐

  1. 一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜

    我在28岁生日那天电信一个副总劝我出来开公司算了,然后想了一天第二天就去工商局注册了,从有开公司的想法到工商局注册仅仅一天时间! 然后2003年8 月份拿到营业执照,根本不知道安全是怎么一回事情,找北 ...

  2. 很巧妙的进程防杀方法[秋镇菜原创]

    刚刚学内核对象,想写个可以防杀的进程,但其他方法太高级, 本菜鸟不感高攀,想了几天,想到一个很本的办法,不正确的 方还请高手指点一下. 程序运行两个事例,每个实例互相监视另外的实例是否存在, 如果不存 ...

  3. 用__asm写c函数[秋镇菜]

    想学SHELLCODE,所以必须会用汇编,这几天学了一点点东西,高手见笑,这是我的记事本,没什么技术含量. #include <stdio.h> void fn() {  char sz[ ...

  4. 一些不错的C++网站[秋镇菜]

    喜欢C++的朋友,你应该该也有自己喜欢,也认为不错的网站吧!我恳求你告诉我,请留言给我. http://www.boost.org/ Boost provides free peer-reviewed ...

  5. 驱动程序的专业术语-秋镇菜版

    我自己整理,可能小部分不准确(还在整理中) WDM                                     Win32 Driver Model(驱动程序模型) FDO         ...

  6. 用Java编写一个最简单的桌面程序

    使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序. Java的javax.swi ...

  7. 子程序调用与宏定义的异同_如何用数控系统进行简单的宏程序调用?老师傅告诉你,用G65就行...

    什么是简单调用?很多人都不知道吧,如果想要深入操作宏, 就先要学会变量,学会变量之担,再去操作宏,就会变得非常的简单,今天给大家分享如何用G65进行简单的宏程序调用. 用户宏的简单宏调用是指在主程序中 ...

  8. 小程序生命周期_来,简单说说小程序的生命周期?

    简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...

  9. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

最新文章

  1. 2014025679 《嵌入式系统程序设计》第五周学习总结
  2. 电脑台式计算机描述不可用,win7系统计算机描述不可用的解决方法
  3. TensorFlow 学习(3)——MNIST机器学习入门
  4. K8s 实践 | 如何解决多租户集群的安全隔离问题?
  5. 我的技术回顾那些与ABP框架有关的故事-2017年
  6. 如何从使用环境上区别光纤收发器?
  7. Lua虚拟机中的数据结构与栈
  8. 贾跃亭向全体债权人道歉!个人资产曝光:总额14亿美元,国内三套房
  9. mysql怎么精简_我这个mysql查询该如何精简,提高效率啊?
  10. pycharm 右键无法显示unittest框架解决右键只有unittest 运行如何取消右键显示进行普通run...
  11. linux 命令 单词,linux常用命令的英文单词缩写
  12. Time flies
  13. 机器学习(周志华)——决策树问题
  14. 《嵌入式Linux基础教程学习笔记一》
  15. spring mvc 静态资源拦截
  16. centos查看yum上jdk的版本
  17. UNITY TUIO的使用
  18. CentOS查看端口
  19. SAP系统 会计科目主数据详解
  20. H - Repeating Decimals

热门文章

  1. IntelliJ IDEA tomcat配置
  2. eureka注册中心HA集群搭建
  3. Oracle存储过程及调用
  4. B端产品如何应对个性化需求
  5. 2021中国新锐品牌发展报告
  6. 5G赋能中国智慧教育
  7. python 字典查询比列表快_Python 字典和列表的对比应用
  8. java setquality_Java-在不损失质量的情况下调整图像大小
  9. 如何使用分析模型 — 3. 排比图,分析问题的同时给出答案
  10. JAVA——附加作业3——订阅报刊杂志