我正在尝试在两个程序之间创建双向通信通道(一个在 Python 中,另一个在 C# 中)
当我在两个 C# 程序或两个 Python 程序之间创建命名管道时,一切正常,但是当我尝试(例如)从 Python 代码连接到 C# 服务器时,它不起作用:
C#代码:
NamedPipeServerStream server = new NamedPipeServerStream(
"Demo", PipeDirection.InOut, 100, PipeTransmissionMode.Byte,
PipeOptions.None, 4096, 4096)
如果我win32pipe
在 Python 中使用,代码块ConnectNamedPipe
(它永远不会返回)
p = win32pipe.CreateNamedPipe(
r'\\.\pipe\Demo',
win32pipe.PIPE_ACCESS_DUPLEX,
win32pipe.PIPE_TYPE_BYTE | win32pipe.PIPE_WAIT,
1, 65536, 65536,
300,
None)
win32pipe.ConnectNamedPipe(p)
如果我使用 open 函数,它只是建立一个连接,但没有任何反应:
open( '\\\\.\\pipe\\Demo', 'r+b' )
现在,如果我关闭 Python 程序,C# 服务器只会从 Python 接收到一个数据项,并且System.IO.IOException
会出现“管道损坏”消息
我做错什么了吗?