Socat은 PTY가 열려 있을 때만 TCP를 엽니다.

Socat은 PTY가 열려 있을 때만 TCP를 엽니다.

포트 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/ttyACM99TCP 연결이 삭제되어야 합니다.

socat매뉴얼 페이지나 인터넷 검색 (인터넷 검색은 꽤 까다로운 일임에도 불구하고) 에서 이것이 작동한다고 말하는 내용을 찾을 수 없으며 socat내 자신의 파이프 프로그램을 작성하는 수고를 겪고 싶지 않습니다(할 수만 있다면) 정말 필요한 경우).


고쳐 쓰다:

PTY 파이프에 대한 매개변수를 찾았고 wait-slave원하는 대로 작동하지만 이제 socatPTY를 닫으면 종료되는데 이는 이상적이지 않습니다.

socat pty,link=/dev/ttyACM99,raw,wait-slave tcp:192.168.0.15:23

전체 프로그램을 닫는 대신 대상 소켓만 닫는 것과 같은 옵션을 wait-slave사용할 수 있습니까? wait-slave현재 실행 중이고 while 'true'지금까지 작동하는 것 같지만 이상적이지는 않습니다.

관련 정보