通过管道在C#和cPython之间交换数据

2024-04-27 20:54:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相对简单的任务。我必须向一些C应用程序提供一种方法来调用Python应用程序,传递一些数据进行处理,并在Python任务结束时接收结果(两个都是GUI应用程序)。在

我认为管道可以很好地完成这项工作,在C端创建一个命名管道

    using (NamedPipeServerStream pipeServer =
    new NamedPipeServerStream("Demo", PipeDirection.InOut))      

    {// Wait for a client to connect

         pipeServer.WaitForConnection();

应用程序可以p/调用python应用程序,传递sysarg中的管道名称等

在python方面,一旦知道管道名称并使用win32pipe类似于

^{pr2}$

应该行得通。在

会发生的情况是,C检测到传入的连接,但是python端由于一个臭名昭著的错误而“崩溃”:(87,'CallNmaedPipe“,'the parameter is incorrect')。在

我不是管道方面的专家,我不知道这里可能出了什么问题。在


Tags: 数据方法名称应用程序new管道demogui
1条回答
网友
1楼 · 发布于 2024-04-27 20:54:00

CallNamedPipe需要在pipe_TYPE_消息中创建的管道;您的C代码在pipe_TYPE_BYTE中创建管道。因此,您要么需要在C#中以消息模式创建一个管道(使用期望使用PipeTransmissionMode的构造函数),要么使用WriteFile将数据放入管道中。在

相关问题 更多 >