我正在尝试使用 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