8080ポートを待ち受けてリクエストをそのまま別スクリプト(シェルスクリプト)に渡すだけ、っていうのをしたかったんですが、いいコマンドが見つからなかったので勉強がてら自作してみました。もともとはncコマンドでやろうとしていたんですが、データを出力してもresponseヘッダにcontent-lengthを書いてないとコネクションを切断してくれなかったので…

設計

  1. 8080ポートを待ち受ける
  2. リクエストが来たら、外部スクリプト(listen)を起動する
  3. 外部スクリプトを起動するとき、リクエストの内容をそのまま標準入出力経由で渡す
  4. 外部スクリプトの標準出力を取り込んでそのままレスポンスにする

実装


simple server

参考

ソケットプログラミング HOWTO — Python 2.7ja1 documentation