日別アーカイブ: 2013年4月16日

Socketの中継を考える(C言語編)

メールやらHTTP等の通信プログラムのプロトコルは大抵Scoketを使用して通信している。HTTPプロトコルが実際がどういうデータの流れになっているか知りたかったのだが、Socketを中継してみてそのデータを標準出力するプログラムを書いてみた。プロキシサーバのような外部Hostへの中継は難しいが、ローカルで動作しているサーバはポート番号だけ入れ替えることで出来るようになる。

通常は
ブラウザ ←→ HTTPサーバ(ポート80)
となっているのを
ブラウザ ←→ SocketRelayサーバ(ポート8080)←→ HTTPサーバ(ポート80)
のように中継させる事によって、ブラウザからはSocketRelayサーバがHTTPサーバとして動作しているように見えるようになる。SocketRelayサーバは単純にSocketの入出力ストリームを中継しているだけで実質何もしていない。HTTPだけではなくてPOPやSMTPやFTPなんかも同様に出来る。

ソースコード

続きを読む