소카트. 브리지된 TCP - 직렬 포트. 로그 포함

소카트. 브리지된 TCP - 직렬 포트. 로그 포함

socat을 사용하여 TCP 서버와 직렬 포트를 통해 연결된 클라이언트 사이에 브리지를 만들려고 합니다.

다음 명령을 사용하여 TCP 서버를 시뮬레이션합니다.

socat tcp-listen:8888,reuseaddr -

나는 직렬 장치를 시뮬레이션하기 위해 pty를 사용합니다. 다음 명령을 사용하여 간단한 브리지를 만듭니다.

socat -d -d TCP:localhost:8888 pty,rawer

이것은 잘 작동하지만 두 장치 간의 메시지 내용을 기록하고 싶습니다.

이를 위해 다음 명령을 사용해 보았습니다.

socat -d -d TCP:localhost:8888 SYSTEM:'tee server.log | socat -d -d - pty | tee client.log' 

이것은 잘 작동하는 것 같지만 내 문제는 서버 측에서 에코가 발생한다는 것입니다.

답변1

솔루션은 예상보다 쉬웠습니다. -v클라이언트와 서버 간에 전송되는 내용을 stderr에 기록하는 옵션을 추가하기만 하면 됩니다. 내 예에서는 다음과 같습니다.

socat -v TCP:localhost:8888 pty,rawer &> com.log

관련 정보