在上一篇写了一些关于邮槽的内容,刚看了命名管道之后,谈一谈他们之间的区别与联系
邮槽:只允许从客户端发送到服务器,没有可靠性保证,根据广播通信体系所设计,使用邮槽可以建立不可靠的单向数据传输。其优点就是可以很方便的向一个或者多个服务器广播消息
消息管道(Message Pipe)
用于设置应用程序间的一条永久通讯通道,通过该通道可以象自己的应用程序访问一个平面文件一样读写数据。
匿名管道(Anonymous Pipes)
单向流动,并且只能够在同一电脑上的各个进程之间流动。
命名管道(Named Pipes)
双向,跨网络,任何进程都可以轻易的抓住,放进管道的数据有固定的格式,而使用ReadFile()只能读取该大小的倍数。
可以被使用于I/O Completion Ports
相同点:
1、 都是进程间的通信
2、 都是在重命名机制的基础上实现的()
3、 都采用通用命名规则UNC(Universal Naming Convention)
4、 支持多客户端链接???
不同点:
1、 邮槽是单向通信,服务器只读,客户端只写,不支持重叠IO模式
2、 命名管道,可以是双向通信,可以采用重叠IO模式
命名管道的实现:
服务端:
客户端:
更多相关信息:
http://blog.csdn.net/timewolf/archive/2008/08/31/2857502.aspx(对命名管道通信阐述的很清晰)