SerialPort::PortName Property


Gets or sets the port for communications, including but not limited to all available COM ports.

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

property String^ PortName {
	String^ get();
	void set(String^ value);

Property Value

Type: System::String^

The communications port. The default is COM1.

Exception Condition

The PortName property was set to a value with a length of zero.


The PortName property was set to a value that starts with "\\".


The port name was not valid.


The PortName property was set to null.


The specified port is open.

A list of valid port names can be obtained using the GetPortNames method.

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.

    static void Main()
        String^ name;
        String^ message;
        StringComparer^ stringComparer = StringComparer::OrdinalIgnoreCase;
        Thread^ readThread = gcnew Thread(gcnew ThreadStart(PortChat::Read));

        // Create a new SerialPort object with default settings.
        _serialPort = gcnew SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort->PortName = SetPortName(_serialPort->PortName);
        _serialPort->BaudRate = SetPortBaudRate(_serialPort->BaudRate);
        _serialPort->Parity = SetPortParity(_serialPort->Parity);
        _serialPort->DataBits = SetPortDataBits(_serialPort->DataBits);
        _serialPort->StopBits = SetPortStopBits(_serialPort->StopBits);
        _serialPort->Handshake = SetPortHandshake(_serialPort->Handshake);

        // Set the read/write timeouts
        _serialPort->ReadTimeout = 500;
        _serialPort->WriteTimeout = 500;

        _continue = true;

        Console::Write("Name: ");
        name = Console::ReadLine();

        Console::WriteLine("Type QUIT to exit");

        while (_continue)
            message = Console::ReadLine();

            if (stringComparer->Equals("quit", message))
                _continue = false;
                    String::Format("<{0}>: {1}", name, message) );


    static void Read()
        while (_continue)
                String^ message = _serialPort->ReadLine();
            catch (TimeoutException ^) { }

.NET Framework
Available since 2.0
Return to top