random tips on coding, ops, ...

socat 的使用

今天研究怎样在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的手册。


comments powered by Disqus