我正在.NET C#服务器应用程序和Win32客户端应用程序之间创建命名管道连接。在.NET C#中,可以System.IO.StreamReader从命名管道服务器/客户端流创建对象。Winapi中有类似可用的东西可以逐行从命名管道读取吗?
System.IO.StreamReader
命名管道是特殊文件,因此你可以使用文件IO API从它们读取它们,例如ReadFile,等等。
ReadFile
MSDN有一个完整的示例,用于打开和读取命名管道。
问题
ReadFile
在于它需要指定缓冲区大小,该大小在我使用时不是恒定的,因此我正在寻找另一种解决方案。@SoumyaMahunt这就是底层文件IO(WinAPI提供的)的工作原理。它总是这样工作。如果您希望这样做,则必须自己管理动态缓冲区,方法是读取固定大小的块,确定正确的长度,然后追加到动态增长的缓冲区中。