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 未満です。
または offset が buffer の長さを超えています。 または 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