Socket.Shutdown Method

Disables sends and receives on a Socket.

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

public void Shutdown (
	SocketShutdown how
public void Shutdown (
	SocketShutdown how
public function Shutdown (
	how : SocketShutdown



One of the SocketShutdown values that specifies the operation that will no longer be allowed.

Exception typeCondition


An error occurred when attempting to access the socket. See the Remarks section for more information.


The Socket has been closed.

When using a connection-oriented Socket, always call the Shutdown method before closing the Socket. This ensures that all data is sent and received on the connected socket before it is closed.

Call the Close method to free all managed and unmanaged resources associated with the Socket. Do not attempt to reuse the Socket after closing.

The following table shows the SocketShutdown enumeration values that are valid for the how parameter.




Disable sending on this Socket.


Disable receiving on this Socket.


Disable both sending and receiving on this Socket.

Setting how to Send specifies that subsequent calls to Send are not allowed. If you are using a connectionless Socket, specifying Send will have no effect.

Setting how to Receive specifies that subsequent calls to Receive are not allowed. This has no effect on lower protocol layers. If you are using a connection-oriented protocol, the connection is terminated if either of the following conditions exist after a call to Shutdown :

  • Data is in the incoming network buffer waiting to be received.

  • More data has arrived.

If you are using a connectionless protocol, datagrams are accepted and queued. However, if no buffer space is available for additional incoming datagrams, they will be discarded and no error will be returned to the sender. Using Shutdown on a connectionless Socket is not recommended.

Setting how to Both disables both sends and receives as described above.


If you receive a SocketException when calling the Shutdown method, use the SocketException.ErrorCode property to obtain the specific error code. After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation in the MSDN library for a detailed description of the error.


This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing.

The following code example uses Shutdown to disable the Socket.


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

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

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0