socket ライブラリで書き直す

WNI の緊急地震速報電文コード受信クライアントですが、結局 socket ライブラリで書き直しました。
今日は最初、httplib で行こうと思ったのですが、WNI サーバーとの通信ログを見ていると、どうもこれはそもそも HTTP ではないのではないかと! クライアントからコネクション張っているのに、いつの間にか、サーバー側から GET とか飛んできてます。keep-alive って、そういうもんなんでしょうか!?
httplib で扱えなさそうなことが分かったので、素直に socket ライブラリに変更しました。最初、「えー、recv() メソッドとか使うの?」と思ったのですが、makefile() メソッドを使うと、ファイルオブジェクト(Python の open() で返ってくるオブジェクト)経由にできることが分かりました。これで、素直に readline() できます。
暫定コードが書けたので、おうちサーバーで走らせてみることにしました。

ところで HTTP proxy

SSL は分かりませんが、普通の HTTP で、認証の要らない HTTP proxy なら、簡単に対応できることが分かりました。たとえば、通常

sock.connect(('www.hoge.net', 80))
sock.send('GET /index.html HTTP/1.0\n')

と書くべきところ、

sock.connect(('proxy.server'. 3128))
sock.send('GET http://www.hoge.net/index.html HTTP/1.0\n')

とか書けば良いみたい。(本当か?)