TcpClient.ExclusiveAddressUse Property


Gets or sets a Boolean value that specifies whether the TcpClient allows only one client to use a port.

 property bool ExclusiveAddressUse { bool get(); void set(bool value); };
public bool ExclusiveAddressUse { get; set; }
member this.ExclusiveAddressUse : bool with get, set
Public Property ExclusiveAddressUse As Boolean

Property Value


true if the TcpClient allows only one client to use a specific port; otherwise, false. The default is true for Windows Server 2003 and Windows XP Service Pack 2 and later, and false for all other versions.


An error occurred when attempting to access the underlying socket.

The underlying Socket has been closed.


The following code example creates a TcpClient and gets and sets the value of the ExclusiveAddressUse property.

static void GetSetExclusiveAddressUse( TcpClient^ t )
   // Don't allow another process to bind to this port.
   t->ExclusiveAddressUse = true;
   Console::WriteLine( "ExclusiveAddressUse value is {0}", t->ExclusiveAddressUse.ToString() );
static void GetSetExclusiveAddressUse()
    // Don't allow another process to bind to this port.
    t.ExclusiveAddressUse = true;
    Console.WriteLine("ExclusiveAddressUse value is {0}",


By default, multiple clients can use a specific port; however, only one of the clients can perform operations on the network traffic sent to the port. You can use the ExclusiveAddressUse property to prevent multiple clients from using a specific port.

This property must be set before the underlying socket is bound to a client port. If you call Connect, BeginConnect, TcpClient(IPEndPoint), or TcpClient(String, Int32), the client port is bound as a side effect of the method, and you cannot subsequently set the ExclusiveAddressUse property.

Applies to