Именованные каналы между C # и Python
Я пытаюсь создать двусторонний канал связи между двумя программами (одна на Python, а другая на C #)
Когда я создаю именованный канал между двумя программами C # или двумя программами Python, все в порядке, но когда я пытаюсь (например) подключиться к серверу C # из кода Python, это не работает:
Код 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
поднимает с "Труба сломана сообщение
Я делаю что-то не так?