내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

SerialPort.Open 메서드

새 직렬 포트 연결을 엽니다.

네임스페이스:  System.IO.Ports
어셈블리:  System(System.dll)

public void Open()

예외조건
UnauthorizedAccessException

포트에 대한 액세스가 거부된 경우

- 또는 -

현재 프로세스 또는 시스템의 다른 프로세스가 이미 SerialPort 인스턴스에 의해 또는 관리되지 않는 코드에서 지정된 COM 포트가 열려 있습니다.

ArgumentOutOfRangeException

이 인스턴스의 속성 중 하나 이상이 올바르지 않은 경우. 예를 들어, Parity, DataBits 또는 Handshake 속성이 올바른 값이 아니거나, BaudRate가 0 이하거나, ReadTimeout 또는 WriteTimeout 속성이 0보다 작고 InfiniteTimeout이 아닌 경우에 해당합니다.

ArgumentException

포트 이름이 "COM"으로 시작하지 않는 경우

- 또는 -

포트의 파일 형식이 지원되지 않는 경우

IOException

포트의 상태가 올바르지 않은 경우

- 또는 -

내부 포트 상태를 설정하지 못한 경우. 예를 들어, 이 SerialPort 개체에서 전달된 매개 변수가 잘못된 경우입니다.

InvalidOperationException

SerialPort 의 현재 인스턴스에 지정된 포트가 이미 열려 있습니다.

SerialPort 개체 당 하나씩의 연결만 열려 있을 수 있습니다.

포트는 즉시 닫히지 않을 수 있으므로 응용 프로그램에서는 Close 메서드를 호출한 후 잠시 기다렸다가 Open 메서드를 호출하는 것이 좋습니다.

다음 코드 예제에서는 SerialPort 클래스를 사용하여 두 사용자가 null 모뎀 케이블로 연결된 컴퓨터 두 대에서 채팅할 수 있도록 하는 방법을 보여 줍니다. 이 예제에서는 사용자에게 채팅 전에 포트 설정과 사용자 이름을 입력하라는 메시지를 표시합니다. 이 코드 예제는 SerialPort 클래스에 대해 제공되는 보다 큰 예제의 일부입니다.


public static void Main()
{
    string name;
    string message;
    StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
    Thread readThread = new Thread(Read);

    // Create a new SerialPort object with default settings.
    _serialPort = new 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;

    _serialPort.Open();
    _continue = true;
    readThread.Start();

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

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

    while (_continue)
    {
        message = Console.ReadLine();

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

    readThread.Join();
    _serialPort.Close();
}

public static void Read()
{
    while (_continue)
    {
        try
        {
            string message = _serialPort.ReadLine();
            Console.WriteLine(message);
        }
        catch (TimeoutException) { }
    }
}


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft