在windows7下,我有一个python3应用程序,它通过命名管道与使用visualstudio用C编写的可执行文件进行通信。在Python中,我使用win32pipe包。在
我注意到,在可执行文件中,从管道读取数据是阻塞的:
readResult = ReadFile(plafParams->hrpipe_p, &byte, 1, &dwBytesTransferred, &overlap);
打开管道时:
^{pr2}$overlap
是一个静态全局变量,如上所述初始化。在
OVERLAPPED overlap;
在Python中,管道的打开方式如下:
self._rpipe = win32pipe.CreateNamedPipe(r'\\.\pipe\wskr_%s'%(self._comport,), win32pipe.PIPE_ACCESS_DUPLEX | win32file.FILE_FLAG_OVERLAPPED , 0, 1, 256, 256, 0, None)
在等待连接到管道之后,我像
win32file.WriteFile(self._rpipe, bytes)
它可以工作,而且我可以在可执行文件中获得发送的字节,没有问题,但是我希望有一个非阻塞读取。因此,我用win32file.FILE_FLAG_OVERLAPPED
打开了管道,但这没有帮助。。。在
如有任何提示,我将不胜感激;-)
目前没有回答
相关问题 更多 >
编程相关推荐