33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
#!/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()
|