📜  检查连接 c# (1)

📅  最后修改于: 2023-12-03 14:55:51.518000             🧑  作者: Mango

使用 C# 检查连接

在 C# 中,检查连接的两种方式包括:

  1. 使用 System.Net.NetworkInformation.Ping
  2. 使用 System.Net.Sockets.TcpClient
检查主机是否在线

使用 Ping 类可以检查主机是否在线。以下是一个示例代码片段:

using System.Net.NetworkInformation;

string hostNameOrAddress = "www.google.com";
Ping ping = new Ping();
PingReply reply = ping.Send(hostNameOrAddress);

if (reply.Status == IPStatus.Success)
{
    Console.WriteLine($"The host {hostNameOrAddress} is online.");
}
else
{
    Console.WriteLine($"The host {hostNameOrAddress} is not online.");
}

这段代码会发送一个 ICMP 请求到指定主机,并等待响应。如果响应是成功的(即 Status 属性为 IPStatus.Success),那么主机在线。

检查端口是否开放

使用 TcpClient 类可以检查端口是否开放。以下是一个示例代码片段:

using System.Net.Sockets;

string hostNameOrAddress = "www.google.com";
int port = 80;
TcpClient client = new TcpClient();

try
{
    client.Connect(hostNameOrAddress, port);
    Console.WriteLine($"The port {port} on host {hostNameOrAddress} is open.");
}
catch (Exception)
{
    Console.WriteLine($"The port {port} on host {hostNameOrAddress} is not open.");
}
finally
{
    client.Close();
}

这段代码会尝试在指定主机和端口上创建一个 TCP 连接。如果连接成功,那么该端口开放。

注意,在使用 TcpClient 类检查端口是否开放时,你需要确保你的代码是在异步线程上运行的。否则,该操作可能会阻塞主线程。