This documentation is archived and is not being maintained.

NetworkStream.Write Method

Writes data to the NetworkStream.

Namespace:  System.Net.Sockets
Assembly:  System (in System.dll)

public override void Write(
	byte[] buffer,
	int offset,
	int size


Type: System.Byte[]

An array of type Byte that contains the data to write to the NetworkStream.

Type: System.Int32

The location in buffer from which to start writing data.

Type: System.Int32

The number of bytes to write to the NetworkStream.


The buffer parameter is null.


The offset parameter is less than 0.


The offset parameter is greater than the length of buffer.


The size parameter is less than 0.


The size parameter is greater than the length of buffer minus the value of the offset parameter.


There was a failure while writing to the network.


An error occurred when accessing the socket. See the Remarks section for more information.


The NetworkStream is closed.


There was a failure reading from the network.

The Write method starts at the specified offset and sends size bytes from the contents of buffer to the network. The Write method blocks until the requested number of bytes is sent or a SocketException is thrown. If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code, and refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.


Check to see if the NetworkStream is writable by accessing the CanWrite property. If you attempt to write to a NetworkStream that is not writable, you will get an IOException. If you receive an IOException, check the InnerException property to determine if it was caused by a SocketException.

The following code example checks to see whether the NetworkStream is writable. If it is, then Write is used to write a small message.

// Examples for CanWrite, and CanWrite   

// 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);
     Console.WriteLine("Sorry.  You cannot write to this NetworkStream.");  
// 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.");  

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0