2009-09-02 2 views
0

나는 시스템에서 사용할 수있는 모든 COM 포트를 나열하는 코드를 작성합니다 (현재 2003, ver 1.1). 이제이 com 포트 중 어떤 것이 장치에 연결되어 있고 어느 것이 사용 가능한지 알고 싶습니다.COM 포트 찾기

저는 vC++에서 dll을 작성하고 완료했습니다. thnx

답변

1

각 포트를 열어보십시오. 열 수 없거나 예외가 발생하면 포트를 사용할 수 없습니다. 열 수 있으면 사용할 수 있습니다.

+0

실제로 사실이지만 포트가 사용 가능하거나 사용되지 않는 장치 (수신 대기 여부)가 해당 포트에 실제로 연결되어 있는지 여부는 알 수 없습니다. – Coxy

+0

사실, OP가 찾고있는 장치를 알고 있다고 가정하면 사용 가능한 각 포트에 초기화 문자열을 보내고 유효한 응답을 기다리는 것이 쉽습니다. –

2

이것은 어렵습니다.

직렬 통신은 단지 송수신 전선이며 TCP와 같은 협상 된 연결이 아닙니다.

연결된 장치가없는 포트에 System.IO.Ports를 사용하여 연결을 열 수 있습니다.

다른 전송 속도 등을 사용하여 하루 종일 연결을 열어 볼 수 있으며 연결된 장치가 있어도 응답을받을 수 없습니다.

아래 코드를 사용하여 의 직렬 포트 (USB 포트 제외) 목록을 얻을 수는 있지만 컴퓨터에 연결된 장치가 있는지 여부는 알 수 없습니다.

foreach (string s in SerialPort.GetPortNames()) { 
    Console.WriteLine("{0}", s); 
    } 
+0

질문은 SerialPort가없는 VS2k3을 말합니다. – AMissico

+2

SerialPort 클래스는 .NET 2.0에 도입되었으므로 .NET 1.1에는 존재하지 않습니다. – Scoregraphic

+0

karthik은 이미 포트를 나열하는 코드가 있음을 명시했습니다. – AMissico