Что я делаю не так, что эти две программы не могут общаться? - PullRequest
0 голосов
/ 21 апреля 2019

Простой пример отправки текста между двумя программами через именованный канал.Программы асинхронные, но одна должна периодически отправлять текст другой.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)
...