を作成して、そのメソッドHttpWebRequest
を呼び出したとしますGetResponseStream
。ストリームを読み込もうとすると、すべてのデータがすでにローカルバッファーにコピーされていますか、それともネットワークに接続されたときに読み取ることで機能しますか?
1340 次
2 に答える
2
GetResponseStreamメソッドは、であるStream
抽象クラスの特定の実装を返しますNetworkStream
。このタイプのストリームはソケットにバインドされます。これは、TCP/IPソケットストリームへのポインタです。サーバーがサーバーにデータを書き込んだ場合、クライアントがこのストリームから読み取りを開始すると、ソケットで使用可能なデータのみが読み取られ、サーバーがより多くのデータを書き込むまで、現在使用可能なデータよりも多くのデータを読み取ろうとするとブロックされます。ソケットに。
したがって、サーバーがすでに5バイトをソケットに書き込んでいると仮定すると、クライアントのストリームから5バイトを読み取ろうとすると、それらの5バイトを取得できますが、6バイトを読み取ろうとすると読み取りサーバーがもう1バイトを送信するか、タイムアウトするまで、操作はブロックされます。
于 2013-02-26T22:00:28.657 に答える
-1
その例を見ると、最初に電話する必要があることがわかります.GetResponse()
。これで質問に答えられます。
于 2012-07-06T16:10:14.967 に答える