Tipsの評価に対するコメントへのレスです
- 題名: Tipsの評価に対するコメントへのレスです
- 著者: talkingdebugger C++
- 日時: 2005/03/29 12:53:34
- ID: 10161
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: Tipsの評価に対するコメントへのレスです
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2005/03/30 4:07:55
- ID: 10170
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: Tipsの評価に対するコメントへのレスです
- 著者: talkingdebugger C++
- 日時: 2005/04/01 18:06:37
- ID: 10219
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: Tipsの評価に対するコメントへのレスです
- 著者: こど。
- 日時: 2005/04/02 2:09:50
- ID: 10226
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: Tipsの評価に対するコメントへのレスです
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2005/04/02 2:14:32
- ID: 10227
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: Tipsの評価に対するコメントへのレスです
- 著者: talkingdebugger C++
- 日時: 2005/04/02 11:46:26
- ID: 10231
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: Tipsの評価に対するコメントへのレスです
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2005/04/03 2:51:17
- ID: 10233
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: Tipsの評価に対するコメントへのレスです
- 著者: talkingdebugger C++
- 日時: 2005/04/03 13:17:23
- ID: 10236
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: Tipsの評価に対するコメントへのレスです
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2005/04/04 3:44:42
- ID: 10238
- この記事の返信元:
- この記事への返信:
- ツリーを表示
文章が長くなってしまいましたので、こちらに投稿させていただきます。
この記事に対するレスの前にご自分で一度動作検証を行ってください。
MSDNの記事はあくまでリファレンスです。
>ちなみに、Stream.Closeは接続を解放するとMSDNにあります。
確かにMSDNにそう記述がありますが。。
もちろんストリームはClose()されるべきです。
しかし、ストリームを閉じても通信(ソケット)を閉じたとは正確には"判断されない"ということに注意してください。
ストリームはあくまで接続(RequestやResponse等のネットワーク通信に関するオブジェクト)からデータを読み出すものであって接続そのものではありません。
.NETで作成した接続オブジェクト(抽象的な言い方ですが一概にソケットとは言えないので)はアプリケーション終了時に自動的に破棄されるので同じサーバーに複数回接続する予定がない場合はまぁ、問題はないかも知れません。
しかし、同一アプリケーションが複数回同じサーバーに接続する場合、特に相手との信頼関係を重視するSSL通信においては一度開いたRequestを破棄してからでないと内部的には「すでに接続済みの相手のはずなのにまた接続しようとしている 偽者の可能性がある」と判断されると思われます(未検証)。https通信の有効性のチェック(メソッド)をオーバーライドしてエラーにならないようにしてしまえば問題はないですが、それを行わない場合は
System::Net::WebRequest* req;
req->Abort();
Abort()メソッドを呼び出して破棄、接続の終了を明確にしなくてはいけません。
そうしないとサーバーとの信頼関係を確立できず、エラーが返ってきます。
http通信では必ずしもこの限りではありませんが、それでもきちんとAbort()するのが正しい手順だと思います。
少なくとも私が開発を行う限り、このメソッドを呼び出さなければ期待通り動作致しません(検証済み)
しかし私の開発はManaged C++開発なのでC#と動作が異なる場合があるかもしれません。C#はあまり慣れませんができる限りの検証は致しました。それでももしそうでしたら板汚しをおゆるしください。