解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
1.15 KiB
X
using System.Net.Sockets;

namespace XUnitTest;

/// <summary>测试用网络辅助</summary>
internal static class TestNetworkHelper
{
    /// <summary>检查目标服务器是否可达</summary>
    /// <remarks>
    /// 访问公网站点的用例必须先过本判断:断网或代理异常时,真实请求(HTTP 默认 100 秒超时 + DNS 解析)
    /// 会把用例挂住很久,全量运行表现为“卡住不动”。探测本身限时 2 秒,不可达即静默跳过。
    /// </remarks>
    /// <param name="host">主机名</param>
    /// <param name="port">端口</param>
    /// <param name="timeoutMs">连接超时,毫秒</param>
    /// <returns>是否可达</returns>
    public static Boolean IsReachable(String host, Int32 port, Int32 timeoutMs = 2000)
    {
        try
        {
            using var client = new TcpClient();
            var result = client.BeginConnect(host, port, null, null);
            if (!result.AsyncWaitHandle.WaitOne(TimeSpan.FromMilliseconds(timeoutMs))) return false;

            client.EndConnect(result);

            return true;
        }
        catch
        {
            return false;
        }
    }
}