"""Raw PTY to local reference server: exercise a UART-like byte stream.""" import os import pty import select import socket import sys import tty master, slave = pty.openpty() tty.setraw(slave) host, port = sys.argv[1].split(":") peer = socket.create_connection((host, int(port))) print(os.ttyname(slave), flush=True) while True: ready, _, _ = select.select([master, peer], [], []) for source in ready: data = os.read(master, 19) if source == master else peer.recv(23) if not data: sys.exit(0) if source == master: peer.sendall(data) else: while data: written = os.write(master, data) data = data[written:]