Windows平台进程间通信: 命名管道
时间:2010-09-02 来源:kgisme170
下面的例子当中,主程序等待客户程序写入一个hello!字符串,并打印出来。
1. 主服务程序:(控制台程序,没有"stdafx.h"的预编译头,所以需要pragma来导入需要的库文件。
#include<windows.h> |
#include"stdafx.h" |
主程序运行,大概会有1-2秒的延时,然后打印hello!。
如果是Win32应用程序,那么可以对HWND对象使用OpenClipborad()来使用Windows的全局剪贴版,这样更加方便。如果要用管道进行单向通信,那么可以用mailslot替代Namedpipe,它也是一种UNC资源,用法几乎一样。既然是UNC地址,它们都是可以跨越Windows主机的。但是必须在同一个Domain里面。邮槽通常是用来发送广播消息的。不同点,命名管道是TCP跨越,而邮槽是UDP数据报。
UNC的格式是\servername\sharename\directory\filename。
这上面用.表明是本机,sharename是资源类型,是pipe.邮槽的话写成"\\\\.\\mailslot\\sample_mailslot"。