SerialPort.Handshake Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets the handshaking protocol for serial port transmission of data.

Namespace: System.IO.Ports
Assembly: System (in system.dll)

public Handshake Handshake { get; set; }
/** @property */
public Handshake get_Handshake ()

/** @property */
public void set_Handshake (Handshake value)

public function get Handshake () : Handshake

public function set Handshake (value : Handshake)

Property Value

One of the Handshake values. The default is None.

Exception typeCondition


The port is in an invalid state.

- or -

An attempt to set the state of the underlying port failed. For example, the parameters passed from this SerialPort object were invalid.


The value passed is not a valid value in the Handshake enumeration.


The stream is closed. This can occur because the Open method has not been called or the Close method has been called.

When handshaking is used, the device connected to the SerialPort object is instructed to stop sending data when there is at least (ReadBufferSize-1024) bytes in the buffer. The device is instructed to start sending data again when there are 1024 or fewer bytes in the buffer. If the device is sending data in blocks that are larger than 1024 bytes, this may cause the buffer to overflow.

If the Handshake property is set to RequestToSendXOnXOff and CtsHolding is set to false, the XOff character will not be sent. If CtsHolding is then set to true, more data must be sent before the XOff character will be sent.

The following code example demonstrates the use of the SerialPort class to allow two users to chat from two separate computers connected by a null modem cable. In this example, the users are prompted for the port settings and a username before chatting. This code example is part of a larger code example provided for the SerialPort class.

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

.NET Compact Framework

Supported in: 2.0

Community Additions