几个月前,我使用MSDN中的示例代码在GUI中实现了命名管道服务器 - > https://msdn.microsoft.com/en-us/library/bb546085
命名管道服务器似乎运行良好,我已经用它来控制我的GUI与其他用各种Visual Studio语言编写的程序。
今天我一直在尝试使用Python脚本与命名管道服务器进行交互。在网上,很容易找到使用ctypes库的示例python代码,它使用windll.kernel32.CreateFileA()方法打开命名管道,并使用windll.kernel32.WriteFile()方法将ASCII字节写入其中
问题是MSDN示例使用的格式是,从管道写入/接收的前两个字节表示管道中要跟随的字符串的大小。虽然我可以毫无问题地从Python中将字符串写入管道,但我似乎无法将任何二进制数据传递给WriteFile()方法。
有关解决此问题的方法的问题: 1.有没有办法将原始字节的二进制数据写入WriteFile()?有没有其他方法我可以打电话来处理这个? 2.我有什么方法可以将二进制数编码为字符串作为原始字节?例如,如果我知道我想提前发送的字节(例如0x1234),那么我就可以发送create_string_buffer(" \ x12 \ x34")。但是,必须在运行时确定字节,并且我还没有找到一种方法来从原始字节中创建字符串。