C# 查找COM端口

C# 查找COM端口,c#,.net-1.1,C#,.net 1.1,我编写了一个代码(VS2003,1.1版)来列出系统中所有可用的com端口。现在我想知道这些com端口中的哪些连接到设备,哪些可用 我用vc++写了一个dll并完成了它。 thnx尝试打开每个端口。如果无法打开该端口(或引发异常),则该端口不可用。如果您可以打开它,它是可用的。尝试打开每个端口。如果无法打开该端口(或引发异常),则该端口不可用。如果你能打开它,它是可用的。这将是一个艰难的过程 串行通信只是发送/接收线路,它们不像TCP那样是协商连接 您可以打开与未连接设备的端口的连接(使用Sys

我编写了一个代码(VS2003,1.1版)来列出系统中所有可用的com端口。现在我想知道这些com端口中的哪些连接到设备,哪些可用

我用vc++写了一个dll并完成了它。
thnx

尝试打开每个端口。如果无法打开该端口(或引发异常),则该端口不可用。如果您可以打开它,它是可用的。

尝试打开每个端口。如果无法打开该端口(或引发异常),则该端口不可用。如果你能打开它,它是可用的。

这将是一个艰难的过程

串行通信只是发送/接收线路,它们不像TCP那样是协商连接

您可以打开与未连接设备的端口的连接(使用System.IO.Ports)

您还可以打开一个连接,并使用不同的波特率全天对其进行写入,等等,即使有连接的设备,您也可能永远不会得到响应

综上所述,您可以使用下面的代码获取机器上的串行端口(不包括USB端口)列表,但它不会告诉您是否有设备连接到它们:

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

这将是一个艰难的时刻

串行通信只是发送/接收线路,它们不像TCP那样是协商连接

您可以打开与未连接设备的端口的连接(使用System.IO.Ports)

您还可以打开一个连接,并使用不同的波特率全天对其进行写入,等等,即使有连接的设备,您也可能永远不会得到响应

综上所述,您可以使用下面的代码获取机器上的串行端口(不包括USB端口)列表,但它不会告诉您是否有设备连接到它们:

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

问题是指VS2k3,它没有SerialPort。SerialPort类是在.NET 2.0中引入的,因此在.NET 1.1中不存在。问题是指VS2k3,它没有SerialPort。SerialPort类是在.NET 2.0中引入的,因此在.NET 1.1中不存在,端口是否可用与设备(侦听或不侦听)是否实际连接到该端口无关。是的,但假设OP知道他们要查找的设备,则很容易向每个可用端口发送init字符串并等待有效响应。虽然这是真的,端口是否可用与设备(侦听或不侦听)是否实际连接到该端口无关。是的,但假设OP知道他们要查找的设备,则很容易向每个可用端口发送init字符串并等待有效响应。