Je suis en train de créer un canal de communication bidirectionnelle entre deux programmes (un en Python et un autre en C#)canaux nommés entre C# et Python
Lorsque je crée un tube nommé entre deux C# programmes ou deux Python programmes, tout est OK, mais lorsque je tente de (par exemple) se connecter au serveur C# à partir du code Python, il ne fonctionne pas:
code C#:
NamedPipeServerStream server = new NamedPipeServerStream(
"Demo", PipeDirection.InOut, 100, PipeTransmissionMode.Byte,
PipeOptions.None, 4096, 4096)
Si je win32pipe
en Python, blocs de code sur ConnectNamedPipe
(il ne revient jamais)
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 j'utilise la fonction ouverte, il établit simplement une connexion, mais rien ne se produit:
open('\\\\.\\pipe\\Demo', 'r+b')
Maintenant, si je ferme le programme Python, serveur C# reçoit un seul élément de données de Python et un System.IO.IOException
soulève avec le message "Pipe is broken"
Est-ce que je fais quelque chose de mal?
Cette question aidé par écrit [ce blog] (http://jonathonreinhart.blogspot.com/2012/12/named-pipes-between-c-and-python.html). –