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

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

NetworkStream.BeginWrite メソッド

ストリームへの非同期の書き込みを開始します。

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

Public Overrides Function
 BeginWrite ( _
    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.BeginWrite(buffer, offset, size, callback, state)
public override IAsyncResult BeginWrite (
    byte[] buffer,
    int offset,
    int size,
    AsyncCallback callback,
    Object state
)
public:
virtual IAsyncResult^ BeginWrite (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    AsyncCallback^ callback, 
    Object^ state
) override
public IAsyncResult BeginWrite (
    byte[] buffer, 
    int offset, 
    int size, 
    AsyncCallback callback, 
    Object state
)
public override function BeginWrite (
    buffer : byte[], 
    offset : int, 
    size : int, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffer

NetworkStream に書き込むデータを格納する Byte 型の配列。

offset

データの送信を開始する buffer 内の場所。

size

NetworkStream に書き込むバイト数。

callback

BeginWrite の完了時に実行される AsyncCallback デリゲート。

state

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

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

例外例外
例外の種類条件

ArgumentNullException

buffer が null 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

offset が 0 未満です。

または

offset が buffer の長さを超えています。

または

size が 0 未満です。

または

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

IOException

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

または

ネットワークへの書き込み中にエラーが発生しました。

または

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

ObjectDisposedException

NetworkStream が閉じています。

解説解説

BeginWrite メソッドは、リモート ホストへの非同期送信操作を開始します。BeginWrite メソッドを呼び出すと、個別の実行スレッド内でデータを送信できます。

AsyncCallback デリゲートを実装するコールバック メソッドを作成し、その名前を BeginWrite メソッドに渡す必要があります。使用する state パラメータは、少なくとも NetworkStream を格納している必要があります。他の情報がコールバックに必要な場合は、小さなクラスまたは構造体を作成して NetworkStream などの必要な情報を保持します。構造体またはクラスのインスタンスは、state パラメータを使用して BeginWrite メソッドに渡します。

コールバック メソッドは EndWrite メソッドを実装する必要があります。アプリケーションが BeginWrite を呼び出すと、指定したコールバック メソッドが個別のスレッドを使用して実行され、EndWrite は、NetworkStream が要求されたバイト数を送信するか例外をスローするまでブロックします。BeginWrite メソッドを呼び出してから元のスレッドをブロックする場合は、WaitOne メソッドを使用します。元のスレッドの実行を継続させるには、コールバック メソッドで Set を呼び出します。コールバック メソッドの記述に関する追加情報については、「Callback のサンプル」を参照してください。

メモメモ

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

使用例使用例

BeginWrite を使用して、ネットワーク ストリームに非同期的にデータを書き込むコード例を次に示します。myWriteCallBack メソッドは AsyncCallback デリゲートを実装しており、BeginWrite の終了時に呼び出されます。

' Check to see if this NetworkStream is writable.
If myNetworkStream.CanWrite Then
   
   Dim myWriteBuffer As Byte()
 = Encoding.ASCII.GetBytes("Are you receiving this message?")
   myNetworkStream.BeginWrite(myWriteBuffer, 0, myWriteBuffer.Length, New
 AsyncCallback(AddressOf NetworkStream_ASync_Send_Receive.myWriteCallBack),
 myNetworkStream)
   allDone.WaitOne()
Else
   Console.WriteLine("Sorry.  You cannot write to this NetworkStream.")
End If

           
// Check to see if this NetworkStream is writable.
if (myNetworkStream.CanWrite){
   
     byte[] myWriteBuffer = Encoding.ASCII.GetBytes("Are you receiving this
 message?");
     myNetworkStream.BeginWrite(myWriteBuffer, 0, myWriteBuffer.Length, 
                                                  new AsyncCallback(NetworkStream_ASync_Send_Receive.myWriteCallBack),
 
                                                  myNetworkStream);
     allDone.WaitOne();
}
else{
     Console.WriteLine("Sorry.  You cannot write to this
 NetworkStream.");  
}
           
// Check to see if this NetworkStream is writable.
if ( myNetworkStream->CanWrite )
{
   array<Byte>^myWriteBuffer = Encoding::ASCII->GetBytes( "Are you
 receiving this message?" );
   myNetworkStream->BeginWrite( myWriteBuffer, 0, myWriteBuffer->Length, gcnew
 AsyncCallback( &MyNetworkStreamClass::myWriteCallBack ), myNetworkStream );
   allDone->WaitOne();
}
else
{
   Console::WriteLine( "Sorry.  You cannot write to this
 NetworkStream." );
}
// Check to see if this NetworkStream is writable.
if (myNetworkStream.get_CanWrite()) {
    ubyte myWriteBuffer[] = Encoding.get_ASCII().
        GetBytes("Are you receiving this message?");
    myNetworkStream.BeginWrite(myWriteBuffer, 0,
        myWriteBuffer.get_Length(), 
        new AsyncCallback(NetworkStreamASyncSendReceive.
        MyWriteCallBack), myNetworkStream);
    allDone.WaitOne();
}
else {
    Console.WriteLine("Sorry.  You cannot write to this "
        + "NetworkStream.");
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
NetworkStream クラス
NetworkStream メンバ
System.Net.Sockets 名前空間
EndWrite


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

英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

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

   

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



NetworkStream.BeginWrite メソッドのページの著作権

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

©2026 GRAS Group, Inc.RSS