那位仁兄帮忙解释一下“什么是管道”(我愿把所有的分数相送) MSDN says:A pipe is a section of shared memory that processes use for communication. Monitor what? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Windows环境下,不同进程之间可以使用管道进行通讯。所谓管道,顾名思义,就好像花园里浇水的管子一样,将数据从一面放进去,再从另一面取出来。在Windows系统下支持两种管道:匿名管道和命名管道。其中匿名管道只能在本地进程之间使用,命名管道可以在局域网内不同主机之间通讯。1. 匿名管道:匿名管道CreatePipe()函数创建,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。通过这两个句柄,管道两端的两个进程可以进行数据的单项传递,匿名管道并不支持异步读、写操作,这也就意味着不能在匿名管道中使用ReadFileEx()和WriteFileEx(),而且ReadFile()和WriteFile()中的lpOverLapped参数也将被忽略。匿名管道将在读、写句柄都被关闭后退出,也可以在进程中调用CloseHandle()函数来关闭此句柄。 此外,匿名管道的另外一个用途是当作环状缓冲区使用,即便在一个进程之内,不同线程也可以通过匿名管道互相交换数据。2. 命名管道:命名管道的功能比匿名管道强大,程序在创建一个命名管道时会给该命名管道指定一个名字,然后与该主机处于同一个局域网内的其他主机就可以通过特定的API与该主机连接从而获得命名管道的相关句柄,并对该命名管道进行读写。命名管道负责维护数据传输的可靠性。匿名管道支持异步IO,并且由于其具有独立的名称,容易被其他进程获得相关句柄。命名管道有两种基本通信模式:字节模式和消息模式。在字节模式中,数据是以字节流的形式在管道种传输,数据之间没有边界,在管道写入和读出操作中是以字节流即数据块为基本单位操作的,这适合传输大容量数据;在消息模式中,数据是以一条条不连续的消息为基本传输单元,消息和消息之间有边界,在管道写入和读出操作中也是以消息为单位进行操作的,这种方式适合传输量小的数据。 Hash开链的链表什么意思? MFC与WORD操作问题 为什么我建立的管道只能等程序结束了才能读数据? 暑假寻求程序员实习兼职机会! 对话框数之间据交换 求MFC老师! 两个问题,大侠们帮帮忙,在线等待中! 求救,打开一个IE窗口(其实解决后可以加分的,虽然我的分不多啊),谢谢 (初学者)怎样让编译器选择从WinMain()为入口点而非main() 新建Dialog如何显示??????????? 急,在线等待各位神仙的点化,关于对话框 请高手指点一下,不胜感激.
匿名管道CreatePipe()函数创建,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。
通过这两个句柄,管道两端的两个进程可以进行数据的单项传递,匿名管道并不支持异步读、写操作,这也就意味着不能在匿名管道中使用ReadFileEx()和WriteFileEx(),而且ReadFile()和WriteFile()中的lpOverLapped参数也将被忽略。匿名管道将在读、写句柄都被关闭后退出,也可以在进程中调用CloseHandle()函数来关闭此句柄。
此外,匿名管道的另外一个用途是当作环状缓冲区使用,即便在一个进程之内,不同线程也可以通过匿名管道互相交换数据。
2. 命名管道:
命名管道的功能比匿名管道强大,程序在创建一个命名管道时会给该命名管道指定一个名字,然后与该主机处于同一个局域网内的其他主机就可以通过特定的API与该主机连接从而获得命名管道的相关句柄,并对该命名管道进行读写。命名管道负责维护数据传输的可靠性。
匿名管道支持异步IO,并且由于其具有独立的名称,容易被其他进程获得相关句柄。
命名管道有两种基本通信模式:字节模式和消息模式。在字节模式中,数据是以字节流的形式在管道种传输,数据之间没有边界,在管道写入和读出操作中是以字节流即数据块为基本单位操作的,这适合传输大容量数据;在消息模式中,数据是以一条条不连续的消息为基本传输单元,消息和消息之间有边界,在管道写入和读出操作中也是以消息为单位进行操作的,这种方式适合传输量小的数据。