次の方法で共有


NetworkStream.Write メソッド

NetworkStream にデータを書き込みます。

Overrides Public Sub Write( _
   ByVal buffer() As Byte, _   ByVal offset As Integer, _   ByVal size As Integer _)
[C#]
public override void Write(byte[] buffer,intoffset,intsize);
[C++]
public: void Write(unsigned charbuffer __gc[],intoffset,intsize);
[JScript]
public override function Write(
   buffer : Byte[],offset : int,size : int);

パラメータ

  • buffer
    NetworkStream に書き込むデータを格納する Byte 型の配列。
  • offset
    データの書き込みを開始する buffer 内の場所。
  • size
    NetworkStream に書き込むバイト数。

例外

例外の種類 条件
ArgumentNullException buffer が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException offset が 0 未満です。

または

offsetbuffer の長さを超えています。

または

size が 0 未満です。

または

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

IOException ネットワークへの書き込み中にエラーが発生しました。
ObjectDisposedException NetworkStream が閉じています。

または

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

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

解説

Write メソッドは、指定した offset から始まり、 buffer の内容の size バイトをネットワークに送信します。 Write メソッドは、要求されたバイト数が送信されるか、 SocketException がスローされるまでブロックします。 SocketException が発生した場合は、 SocketException.ErrorCode を使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルから、エラーの詳細情報を確認できます。これは MSDN から入手できます。

メモ    CanWrite プロパティにアクセスして、 NetworkStream が書き込み可能かどうかを確認します。書き込むことができない NetworkStream に書き込もうとすると、 IOException が発生します。 IOException が発生した場合は、 InnerException プロパティの値を見ることによって、この原因が SocketException かどうかを確認してください。その場合、 ErrorCode を使用して特定のエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルから、エラーの詳細情報を確認できます。これは MSDN から入手できます。

使用例

[Visual Basic, C#, C++] NetworkStream が書き込み可能かどうかを確認する例を次に示します。書き込み可能の場合、 Write は小さなメッセージを書くときに使用します。

 
' 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.Write(myWriteBuffer, 0, myWriteBuffer.Length)
Else
   Console.WriteLine("Sorry.  You cannot write to this NetworkStream.")
End If


[C#] 

 // Check to see if this NetworkStream is writable.
 if (myNetworkStream.CanWrite){
    
      byte[] myWriteBuffer = Encoding.ASCII.GetBytes("Are you receiving this message?");
      myNetworkStream.Write(myWriteBuffer, 0, myWriteBuffer.Length);
 }
 else{
      Console.WriteLine("Sorry.  You cannot write to this NetworkStream.");  
 }


[C++] 

        // Check to see if this NetworkStream is writable.
        if (myNetworkStream->CanWrite) {
            Byte myWriteBuffer[] = Encoding::ASCII->GetBytes(S"Are you receiving this message?");
            myNetworkStream->Write(myWriteBuffer, 0, myWriteBuffer->Length);
        } else {
            Console::WriteLine(S"Sorry.  You cannot write to this NetworkStream.");  
        }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

NetworkStream クラス | NetworkStream メンバ | System.Net.Sockets 名前空間 | CanWrite | Writeable