Простой пример отправки текста между двумя программами через именованный канал.Программы асинхронные, но одна должна периодически отправлять текст другой.Time.sleep здесь, чтобы я мог видеть, когда данные получены без переполнения канала.В действительности это будут строки разной, но короткой длины - не более 40 байт или около того.Показаны программы ввода и вывода.
import sys, os
pipe_name = 'pipe_test'
# Get variables
#
MyName=sys.argv[0]
print (MyName,': ',Version)
pipein = open(pipe_name, 'r')
while True:
line = pipein.readline()[:-1]
print (line)
Программа вывода:
import sys, os, time
pipe_name = 'pipe_test'
# Get variables
#
MyName=sys.argv[0]
line="Sent pipe output\n"
b = bytes(line, 'utf-8')
if not os.path.exists(pipe_name):
os.mkfifo(pipe_name)
pipeout = open(pipe_name, 'w')
while True:
pipeout.write(line)
time.sleep(5)
print (MyName,': ',Version)
print (line)