Windows下pipe通信(Python)
Windows下pipe通信和Linux有所不同。
在 Windows 上的命名管道主要是通过调用 win32 api 的以下方法来实现的:
win32pipe.CreateNamedPipe()
win32pipe.ConnectNamedPipe()
win32file.ReadFile()
win32file.WriteFile()
serve.py
import win32file
import win32pipe
PIPE_NAME = r'\\.\pipe\test_pipe'
PIPE_BUFFER_SIZE = 65535
while True:
named_pipe = win32pipe.CreateNamedPipe(PIPE_NAME,
win32pipe.PIPE_ACCESS_DUPLEX,
win32pipe.PIPE_TYPE_MESSAGE | win32pipe.PIPE_WAIT | win32pipe.PIPE_READMODE_MESSAGE,
win32pipe.PIPE_UNLIMITED_INSTANCES,
PIPE_BUFFER_SIZE,
PIPE_BUFFER_SIZE, 500, None)
try:
while True:
try:
win32pipe.ConnectNamedPipe(named_pipe, None)
data = win32file.ReadFile(named_pipe, PIPE_BUFFER_SIZE, None)
if data is None or len(data