30 lines
949 B
Python
30 lines
949 B
Python
#! /usr/bin/env python
|
|
#coding=utf-8
|
|
|
|
from __future__ import print_function # python2 use print() function
|
|
|
|
import pty
|
|
import os
|
|
import select
|
|
|
|
def mkpty():
|
|
# open pseudo terminal
|
|
master1, slave = pty.openpty()
|
|
slaveName1 = os.ttyname(slave)
|
|
master2, slave = pty.openpty()
|
|
slaveName2 = os.ttyname(slave)
|
|
print('virtual serial port names: ', slaveName1, slaveName2)
|
|
return master1, master2, slaveName1, slaveName2
|
|
|
|
if __name__ == "__main__":
|
|
master1, master2, slaveName1, slaveName2 = mkpty()
|
|
while True:
|
|
rl, wl, el = select.select([master1,master2], [], [], 1)
|
|
for master in rl:
|
|
data = os.read(master, 1024)
|
|
if master==master1:
|
|
print('from %s - [%d] %s' %(slaveName1, len(data), data))
|
|
os.write(master2, data)
|
|
else:
|
|
print('from %s - [%d] %s' %(slaveName2, len(data), data))
|
|
os.write(master1, data) |