Skip to content

Instantly share code, notes, and snippets.

@nojima
Created May 20, 2014 14:21
Show Gist options
  • Save nojima/c4566e4b7f9c1e66991f to your computer and use it in GitHub Desktop.
Save nojima/c4566e4b7f9c1e66991f to your computer and use it in GitHub Desktop.

socat が便利だったのでメモ。

socat [options] <address> <address>

一方の address から入ってきたデータを他方の address に流すツール。 address には様々なデータストリームを指定できる。(標準入出力, TCP, UDP, ファイル, コマンドなど)

普通は address は read/write モードでオープンされる。 ただし -u をつけると一方向にのみ通信を行う。-U も同様だが方向が逆。

Address Type Description
EXEC:<command-line> 子プロセスをフォークして <command-line> を実行する。socat からの入力は子プロセスの stdin に与えられ、子プロセスの stdout は socat へ出力される。<command-line> はシェルが解釈するわけではないことに注意。
STDOUT stdout に対して入出力する。stdout から入力されても困るので、-u オプションと一緒に使うとよい。
TCP:<host>:<port> <host>:<port> に対して TCP で接続し、入出力を行う。
TCP-LISTEN:<port> <port> を listen し、TCP 接続を accept する。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment