FrontPage  Index  Search  Changes  Login

ZEROProxy

今後の修正

HTTP処理安定化&効率化

スレッド制御の変更

  • ソケットごとにスレッド新規起動する方式からスレッドプールに割り当てる方式に変更する。

HTTPヘッダの処理

データの終わりの検出がタイムアウト依存なのを何とかする。

  • Content-Length を見て、受信するボディのサイズを得る
  • chunkedエンコーディングを処理できるようにする

疑問点:Content-Lengthやchunked送ってこない行儀の悪いサーバーって存在するの?

Keep-Alive対応

http://www.studyinghttp.net/connections

メモ

新方式にする

誇大妄想でまた頓挫してるので、一度ちゃんと整理する。

  • 対象サーバーへの接続部分をクラス化する
    • コンストラクタでサーバーとポートを指定
    • リクエストのパラメータを渡すと送信する
    • Transfer-Encoding: chunked と Content-Lengthを確認して終端をちゃんと見極める
      • 両方ない場合は?
    • IDisposable
    • →実はHttpWebRequestでいいんでない?
  • ストリーム管理部分をソケット化する(SocketHandler)
    • IDisposable
    • コンストラクタにソケットを指定
    • ReadForTerminate、ReadForLength、Write の3つのメソッドを定義。
class SocketHandler : IDisposable
{
	/* Constructors */
	public SocketHandler(Socket socket, int bufferSize);

 	/* Methods */
	public byte[] ReadForTerminateCode(byte[] searchCode);
	public byte[] ReadForLength(int length);
	public void Write(byte[] writeData);
	public void Dispose();
}
Last modified:2007/11/01 23:33:25
Keyword(s):
References:[FrontPage] [EbiSoft PluginFramework]