#!/usr/bin/env python3 """stdin/stdout <-> TCP relay: the SUT executable an ETSI adapter forks inside WSL, forwarding the hex-line protocol to sut_bridge.py --listen on the Windows side (which owns the COM port). run_etsi.py ... --sut /usr/bin/python3 --sut-args "/root/sut_tcp_relay.py --connect 172.x.x.x:7788" """ import argparse import socket import sys def main(): p = argparse.ArgumentParser(description=__doc__) p.add_argument('--connect', required=True, help='host:port of sut_bridge.py --listen') args = p.parse_args() host, port = args.connect.rsplit(':', 1) with socket.create_connection((host, int(port))) as connection: reader = connection.makefile('rb') for line in sys.stdin: line = line.strip() if not line: continue connection.sendall(line.encode() + b'\n') reply = reader.readline() if not reply: sys.exit(2) sys.stdout.write(reply.decode().strip() + '\n') sys.stdout.flush() if __name__ == '__main__': main()