【发布时间】:2015-12-05 11:31:57
【问题描述】:
我需要将消息从 C#.Net 应用程序发送到 Windows 上的 C++ 应用程序。它们将在同一台 PC 上运行。在做了一些研究之后,听起来使用命名管道可能会起作用。但我仍然对几个细节感到困惑。因此,如果有人能填补我的空缺,我将不胜感激。
听起来命名管道基本上是一种文件。如果我的 .Net 应用程序不断写入文件,它会继续变大吗?或者我写的东西会在 C++ 应用程序读取后立即消失吗?
如果我通过一次 write() 调用发送消息,我能保证它会被一起读取,还是可以分解?例如,如果我发送“hello”,是否有可能是我先读“hel”然后读“lo”?
如果我在尝试阅读之前发送多条消息,它们只是坐在那里,我可以一次阅读几条,我是否正确?是否需要多次 read() 调用才能获取每条消息,还是将它们全部连接在一起?
C++ 应用程序有什么方法可以知道消息正在等待?或者我应该只是有一个循环尝试阅读一条消息,休眠,然后尝试再次阅读?
【问题讨论】:
标签: c# c++ pipe named-pipes