CONNECT のトンネリング

CONNECT で SSL 通信をトンネリングするとなんか重くなるなーとおもったら無限ループしてた。通信終わっても Socket.Connected == false にはならないのね。
切断されるまでトンネリングするっていうループで、切断の判断を Socket.Connected でしてた。でもデバッグしてみたら Connected == true のまんま。
んでいまは Socket.Available == 0 の状態が 1秒ほど続いたら通信おわったんだなと判断してる。だけど、回線が遅いとかで1秒以上 Available > 0 にならないことがあるかもしれない・・・。今のところは正常に受信できてるけど・・・。うーん、悩むなぁ。

CONNECT でもブラウザは Proxy-Connection: Keep-Alive を送ってくるけど、いつまでつなぎ続ければいいんだろうか。暗号化されたデータを扱うので、リクエストとリクエストの区切りがわからない。でも keep-alive を期待してるなら期待に応えたい。非同期通信でもつかってみるかな?