NetworkStream.BeginRead メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > NetworkStream.BeginRead メソッドの意味・解説 

NetworkStream.BeginRead メソッド

NetworkStream からの非同期読み取り開始します

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Overrides Function
 BeginRead ( _
    buffer As Byte(), _
    offset As Integer, _
    size As Integer, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As NetworkStream
Dim buffer As Byte()
Dim offset As Integer
Dim size As Integer
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginRead(buffer, offset, size, callback, state)
public override IAsyncResult BeginRead (
    byte[] buffer,
    int offset,
    int size,
    AsyncCallback callback,
    Object state
)
public:
virtual IAsyncResult^ BeginRead (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    AsyncCallback^ callback, 
    Object^ state
) override
public IAsyncResult BeginRead (
    byte[] buffer, 
    int offset, 
    int size, 
    AsyncCallback callback, 
    Object state
)
public override function BeginRead (
    buffer : byte[], 
    offset : int, 
    size : int, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffer

Byte 型の配列。NetworkStream から読み取られデータ格納するメモリ内の場所です。

offset

データ格納開始する buffer 内の場所。

size

NetworkStream から読み取るバイト数。

callback

BeginRead完了時に実行される AsyncCallback デリゲート

state

追加ユーザー定義のデータ格納するオブジェクト

戻り値
非同期呼び出しを表す IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

buffernull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

offset が 0 未満です。

または

offsetbuffer長さ超えてます。

または

size が 0 未満です。

または

size が、buffer長さから offset パラメータの値を引いた値を超えてます。

IOException

になっている Socket閉じてます。

または

ネットワークからの読み取り中にエラー発生しました

または

ソケットへのアクセス中にエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

NetworkStream閉じてます。

解説解説

BeginRead メソッド受信ネットワーク バッファからの非同期データ読み取り開始しますBeginRead メソッド呼び出すと、個別実行スレッド内でデータ受信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginRead メソッドに渡す必要があります使用する state パラメータは、少なくとも NetworkStream格納している必要がありますコールバック メソッド内で受信データ取得しなければならないため、読み取りバッファなどの有用な情報保持するための小さなクラスまたは構造体作成する必要があります構造体またはクラスインスタンスは、state パラメータ使用して BeginRead メソッド渡します

コールバック メソッドは EndRead メソッド呼び出す必要がありますアプリケーションBeginRead呼び出すと、データ受信されるエラー発生するまで待機した後に、指定したコールバック メソッド個別スレッド使用して実行されEndRead指定した NetworkStreamデータ読み取る例外スローするまでブロックしますBeginRead メソッド呼び出してから元のスレッドブロックする場合は、WaitOne メソッド使用します。元のスレッド実行継続させるには、コールバック メソッドSet呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

BeginRead メソッドは、size パラメータ指定したバイト数までの、使用可能なデータをすべて読み取ります。

メモメモ

IOException発生した場合は、InnerException プロパティチェックして、この原因が SocketException かどうか確認してくださいその場合、ErrorCode プロパティ使用して特定のエラー コード取得してくださいエラー詳細については、MSDNWindows Socket Version 2 APIエラー コードドキュメント参照してください

使用例使用例

BeginRead使用してネットワーク ストリームから非同期的にデータ読み取るコード例次に示しますmyReadCallBack メソッドAsyncCallback デリゲート実装しており、BeginRead終了時呼び出されます。

' Check to see if this NetworkStream is readable.
If myNetworkStream.CanRead Then
   
   Dim myReadBuffer(1024) As Byte
   myNetworkStream.BeginRead(myReadBuffer, 0, myReadBuffer.Length, New
 AsyncCallback(AddressOf NetworkStream_ASync_Send_Receive.myReadCallBack),
 myNetworkStream)
   
   allDone.WaitOne()
Else
   Console.WriteLine("Sorry.  You cannot read from this NetworkStream.")
End If

// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
    
    byte[] myReadBuffer = new byte[1024];
    myNetworkStream.BeginRead(myReadBuffer, 0, myReadBuffer.Length, 
                                                 new AsyncCallback(NetworkStream_ASync_Send_Receive.myReadCallBack),
 
                                                 myNetworkStream);  

    allDone.WaitOne();
}
else{
     Console.WriteLine("Sorry.  You cannot read from this
 NetworkStream.");
}

// Check to see if this NetworkStream is readable.
if ( myNetworkStream->CanRead )
{
   array<Byte>^myReadBuffer = gcnew array<Byte>(1024);
   myNetworkStream->BeginRead( myReadBuffer, 0, myReadBuffer->Length, gcnew
 AsyncCallback( &MyNetworkStreamClass::myReadCallBack ), myNetworkStream );
   allDone->WaitOne();
}
else
{
   Console::WriteLine( "Sorry.  You cannot read from this
 NetworkStream." );
}
// Check to see if this NetworkStream is readable.
if (myNetworkStream.get_CanRead()) {
    ubyte myReadBuffer[] = new ubyte[1024];
    myNetworkStream.BeginRead(myReadBuffer, 0,
        myReadBuffer.get_Length(), 
        new AsyncCallback(NetworkStreamASyncSendReceive.
        MyReadCallBack), myNetworkStream);
    allDone.WaitOne();
}
else {
    Console.WriteLine("Sorry.  You cannot read from this
 "
        + "NetworkStream.");
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
NetworkStream クラス
NetworkStream メンバ
System.Net.Sockets 名前空間
EndRead


このページでは「.NET Framework クラス ライブラリ リファレンス」からNetworkStream.BeginRead メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からNetworkStream.BeginRead メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からNetworkStream.BeginRead メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

NetworkStream.BeginRead メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



NetworkStream.BeginRead メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS