socat 的使用¶
@2010-08-17 新版功能: 创建
今天研究怎样在 Linux Host 上访问虚拟机中的串口,搜到一个工具 socat 非常强大, 推荐一下。对我的原始需求,可以如下处理,假设虚拟机中的串口设备为有名 管道 /tmp/serial,用如下命令可以实现对串口的访问:
# socat /tmp/serial tcp-listen:9000 &
# telnet localhost 9001
socat 可以在任意的两个(广义的)管道(socket,标准输入输出流,管道等)之间 建立一个通道,在该通道中交换两端的数据。上面的例子就建立了一个在管道和 socket 之间的通道。用过 nc 的都知道,nc 传文件时无法知道文件什么时候传完了,用 socat 可 以用如下命令:
ip1 # socat -u open:a.txt tcp-listen:9000
ip2 # socat -u tcp:ip1:9000 open:a.txt,create
文件传输完成后连接自动关闭。以后可以用 socat 取代 nc 了。
更多的用法可以参考 socat(1) 的手册。