포트 23에서 TCP 연결을 허용하는 원격 장치와 가상 PTY를 연결하려고 합니다. 대상 장치의 소켓 열기 및 닫기는 다음과 같습니다.중요한이벤트 및 장치 작동.
socat
현재 다음을 사용하여 이 작업을 수행하려고 합니다 .
socat pty,link=/dev/ttyACM99,raw tcp:192.168.0.15:23
/dev/ttyACM99
장치를 열고 데이터를 읽고 쓸 수 있기 때문에 작동 하지만 일단 socat
명령이 실행되면 TCP 포트가 열리고 socat
종료될 때만 닫힙니다.
내가 필요한 것은 다른 소프트웨어(상관없음)가 TCP 포트를 연 후에만 TCP 포트가 열리는 것입니다 /dev/ttyACM99
. 닫히면 /dev/ttyACM99
TCP 연결이 삭제되어야 합니다.
socat
매뉴얼 페이지나 인터넷 검색 (인터넷 검색은 꽤 까다로운 일임에도 불구하고) 에서 이것이 작동한다고 말하는 내용을 찾을 수 없으며 socat
내 자신의 파이프 프로그램을 작성하는 수고를 겪고 싶지 않습니다(할 수만 있다면) 정말 필요한 경우).
고쳐 쓰다:
PTY 파이프에 대한 매개변수를 찾았고 wait-slave
원하는 대로 작동하지만 이제 socat
PTY를 닫으면 종료되는데 이는 이상적이지 않습니다.
socat pty,link=/dev/ttyACM99,raw,wait-slave tcp:192.168.0.15:23
전체 프로그램을 닫는 대신 대상 소켓만 닫는 것과 같은 옵션을 wait-slave
사용할 수 있습니까? wait-slave
현재 실행 중이고 while 'true'
지금까지 작동하는 것 같지만 이상적이지는 않습니다.