Tubos con nombre entre C # y Python

Estoy tratando de crear un canal de comunicación de dos vías entre dos programas (uno en Python y otro en C #)

Cuando creo una canalización con nombre entre dos programas C # o dos programas Python, todo está bien, pero cuando intento (por ejemplo) conectarme al servidor C # desde el código Python, no funciona:

Código C #:

NamedPipeServerStream server = new NamedPipeServerStream(
    "Demo", PipeDirection.InOut, 100, PipeTransmissionMode.Byte,
    PipeOptions.None, 4096, 4096)

Si yo usowin32pipe en Python, bloques de código enConnectNamedPipe (nunca vuelve)

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)

Si uso la función de apertura, solo establece una conexión, pero no ocurre nada:

open( '\\\\.\\pipe\\Demo', 'r+b' )

Ahora, si cierro el programa Python, el servidor C # recibe solo un elemento de datos de Python y unSystem.IO.IOException plantea con el mensaje "El tubo está roto"

Estoy haciendo algo mal ?

Respuestas a la pregunta(3)

Su respuesta a la pregunta