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

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

ArgumentOutOfRangeException

offset が 0 未満です。

または

offsetbuffer長さ超えてます。

または

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 プロパティ使用して特定のエラー コード取得してくださいエラー詳細については、MSDNWindows 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 メソッド を検索

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

辞書ショートカット

すべての辞書の索引

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

   

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



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

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

©2025 GRAS Group, Inc.RSS