NetworkStream.Write Method (Byte[], Int32, Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

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.

Exception Condition

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.");  

.NET Framework
Available since 1.1
Return to top