多线程命名管道通信的设计:
命名管道是进程间通信的一种方式,管道分为2种:匿名管道(Anonymous Pipe)和命名管道(Named Pipe)。
这里主要介绍多线程命名管道。
服务端设计如下图:
客户端设计如下图:
服务端采用阻塞模式等待客户端的连接,客户端采用多个线程对管道进行数据读写。
因客户端采用多个线程对管道进行读写,故一个线程读取的数据可能并不是此线程写入数据后,服务端读取此线程刚写入的数据后再写入的数据。也就是客户端多个线程写入与读取的数据可能会串,此理论已经过测试,为解决此问题,可以在客户端写入数据时加标识,服务端读取数据后,再写入的数据带上此标识,客户端读取时可根据此标识来判断是否是写入数据后服务端返回的消息。
以上设计可支持多个客户端多个线程同时对管道进行读写。
此文并没有对命名管道概念进行过多的解释,需要对概念进行了解的,可查看帮助文档。
此文只进行设计,下篇将进行多线程命名管道通信的实现,敬请期待。
下篇地址:多线程命名管道通信的实现
作者:xinhaijulan
出处:http://xinhaijulan.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。