C#和Python之间的命名管道
我正在尝试在两个程序之间创建双向通信通道(一个在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
“管道损坏”的加薪消息
我做错什么了吗?